Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa NameResolutionError(self.host, self, e) daripada e dan cara menyelesaikannya
NameResolutionError(self.host, self, e) daripada e ialah jenis pengecualian dalam pustaka urllib3 Sebab ralat ini adalah kerana resolusi DNS gagal, iaitu , resolusi percubaan Nama hos atau alamat IP tidak dapat ditemui. Ini mungkin disebabkan oleh alamat URL yang dimasukkan tidak betul, atau DNS server tidak tersedia buat sementara waktu.
Mungkin terdapat beberapa cara untuk menyelesaikan ralat ini:
Semak sama ada alamat URL yang dimasukkan adalah betul, pastikan ia boleh diakses
Pastikan pelayan DNS tersedia, anda boleh cuba menggunakan "ping" dalam baris arahan " perintah untuk menguji sama ada pelayan DNS tersedia
Cuba gunakan alamat IP dan bukannya nama hos untuk mengakses tapak web
Jika anda berada dalam persekitaran proksi, semak sama ada konfigurasi proksi adalah betul .
Semak sambungan network untuk memastikan localhost boleh mengakses Internet.
Ya, berikut ialah contoh kod yang menggunakan perpustakaan urllib3 untuk mengakses URL dan mengendalikan pengecualian NameResolutionError:
import urllib3 Http = urllib3.PoolManager() try: response = http.request('GET', 'http://example.com') print(response.data) except urllib3.exceptions.NewConnectionError as e: print("Name resolution error: ", e)
Dalam contoh ini, kami menggunakan kaedah PoolManager() pustaka urllib3 untuk mencipta kumpulan sambungan HTTP, dan kemudian menggunakan kaedah request() untuk membuat permintaan GET. Jika pengecualian NameResolutionError berlaku, ia akan ditangkap dan maklumat ralat dicetak.
Nota: Apabila menggunakan http.request(), jika url yang dimasukkan tidak betul atau tidak boleh diakses, ralat seperti MaxRetryError dan NewConnectionError akan dibuang dan perlu dikendalikan dengan sewajarnya.
Atas ialah kandungan terperinci Mengapa NameResolutionError(self.host, self, e) daripada e dan cara menyelesaikannya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!