ホームページ >バックエンド開発 >Python チュートリアル >e からの NameResolutionError(self.host, self, e) の理由とその解決方法

e からの NameResolutionError(self.host, self, e) の理由とその解決方法

WBOY
WBOY転載
2024-03-01 13:20:031071ブラウズ

为什么NameResolutionError(self.host, self, e) from e,怎么解决

エラーの理由

NameResolutionError(self.host, self, e) from e は、urllib3 の例外タイプです。このエラーの原因は、DNS 解決の失敗です。つまり、解決しようとしたホスト名または IP アドレスが見つかりませんでした。これは、入力された URL アドレスが間違っているか、DNSserver が一時的に利用できないことが原因である可能性があります。

#解決方法

このエラーを解決するにはいくつかの方法があります:

入力された URL アドレスが正しいかどうかを確認し、アクセス可能であることを確認してください

DNS サーバーが利用可能であることを確認してください。コマンド ラインで「ping」コマンドを使用して、

DNS サーバーが利用可能かどうかをテスト してみてください。

代わりに IP アドレスを使用してみてください。 Web サイトにアクセスするためのホスト名

プロキシ環境にいる場合は、プロキシ設定が正しいかどうかを確認してください。

ネットワーク接続をチェックして、ローカルホストがインターネットにアクセスできることを確認します。

使用例

はい、次は urllib3 ライブラリを使用して URL にアクセスし、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)

この例では、urllib3 ライブラリの PoolManager() メソッドを使用して HTTP 接続プールを作成し、request() メソッドを使用して GET リクエストを発行します。 NameResolutionError 例外が発生すると、それが捕捉され、エラー情報が出力されます。

注: http.request() を使用する場合、入力された URL が正しくない場合やアクセスできない場合は、MaxRetryError や NewConnectionError などのエラーがスローされるため、対応する処理が必要です。

以上がe からの NameResolutionError(self.host, self, e) の理由とその解決方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlsjlt.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。