次のコードは、Pythonインタラクティブシェルで機能します。
import urllib2
result = urllib2.urlopen("http://www.google.com/")
そして200の結果を与えます。
開発サーバーでローカルに実行されているAppEngineアプリで同じコードを実行すると、次のエラーで失敗します。
URLError: <urlopen error An error occured while connecting to the server:
Unable to fetch URL: http://www.google.com/
Error: [Errno 11004] getaddrinfo failed>`
urlfetch
ライブラリを直接使用してみました:
from google.appengine.api import urlfetch
result = urlfetch.fetch("http://www.google.com")
urllib2
これも失敗します( AppEngine内で内部的に呼び出されると私は信じているので、これは理にかなっていURLFetch
ますか?)
ローカルマシンからURLに明確にアクセスできます-では、何が起こっているのでしょうか?
更新:関連するスタックトレース:
File "c:\dev\repos\stackoverflow\main.py", line 40, in get_latest_comments
result = urlfetch.fetch("http://www.google.com")
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\api\urlfetch.py", line 266, in fetch
return rpc.get_result()
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\api\apiproxy_stub_map.py", line 604, in get_result
return self.__get_result_hook(self)
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\api\urlfetch.py", line 397, in _get_fetch_result
raise DownloadError("Unable to fetch URL: " + url + error_detail)
DownloadError: Unable to fetch URL: http://www.google.com Error: [Errno 11004] getaddrinfo failed