以下代码适用于python交互式shell:

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")

而且这也失败了(这是有意义的,我相信appengine内部的urllib2调用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

最佳答案

是否有配置了环境变量的代理?dev_appserver清除所有env vars。

07-26 09:38