5

Google アプリ エンジンで urllib2 を使用して URL を取得しようとすると、次のエラーが発生します。

error: An error occured while connecting to the server: Unable to fetch URL: http://www.google.com Error: [Errno 10106] getaddrinfo failed

これは、urllib2 オープン読み取りメソッドを呼び出すコードです。

def get(self):
        self.write(urllib2.urlopen("http://www.google.com").read())
        self.render_index()

フェッチしたテキストを出力するために、メイン ハンドラ内でライブラリを呼び出すだけです。

私の PC は DNS を正しく解決します。Python Interpeter の urllib2 ライブラリを使用して、URL を正常に取得できます。

Googleサーバーから実行されているデプロイされたコードは意図したとおりに機能します。これは私のローカル環境にあるものですが、それが何であるかがわかりません.

同様の結果でgaeからurlfetchを使用してみました(同じgetaddrinfoが失敗しました)

urllib2 ライブラリを使用する数日前に Google DNS に切り替えましたが、ISP 提供の DNS に切り替えても機能しませんでした。

EDIT:IPアドレスで関数を呼び出すと、URLが取得されます:

self.write(urllib2.urlopen("http://173.194.42.34").read())

前もって感謝します!

4

1 に答える 1

2

DNSリゾルバーがホスト名を解決できないことは間違いありません。お使いのOSまたはセキュリティソフトウェアが、開発サーバーによるアウトバウンド接続の作成を禁止していると思います。もう1つの可能性は、オペレーティングシステムのhostsファイルに無効なエントリがあることです。

また、あなたを助けることができる多くの同様の質問があります。

于 2013-03-19T06:49:39.343 に答える