尝试在google应用引擎中使用urllib2获取网址时出现以下错误:
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()
没什么好看的,只是调用主处理程序中的库来取出所提取的文本。
我的电脑正确解析了DNS。我可以使用python interpeter中的urllib2库,成功获取URL。
从谷歌服务器运行的部署代码按预期工作,这与我的本地环境有关,但我找不到它是什么。
我也尝试过使用来自gae的urlfetch,结果相似(同样的getaddrinfo失败)
在使用urllib2库之前几天我切换到Google DNS,但切换回ISP提供的DNS也无效。
编辑:当使用IP地址调用该函数时,将获取URL:
self.write(urllib2.urlopen("http://173.194.42.34").read())
提前致谢!
答案 0 :(得分:2)
我非常确定您的DNS解析器无法解析主机名。我假设您的操作系统或安全软件禁止devserver创建出站连接。另一种可能性是您的操作系统上的hosts文件中存在无效条目。
此外,还有many similar questions可以帮助您。