5

尝试在谷歌应用引擎中使用 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()

没什么特别的,只是调用主处理程序中的库来输出获取的文本。

我的电脑正确解析 DNS。我可以使用 python interpeter 中的 urllib2 库,成功获取 URL。

从谷歌服务器运行的部署代码按预期工作,这与我的本地环境有关,但我找不到它是什么。

我还尝试使用来自 gae 的 urlfetch,结果相似(相同的 getaddrinfo 失败)

在使用 urllib2 库之前的几天,我切换到了谷歌 DNS,但是切换回 ISP,前提是 DNS 也不起作用。

编辑:当使用 IP 地址调用函数时,会获取 URL:

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

提前致谢!

4

1 回答 1

2

我相当确定您的 DNS 解析器无法解析主机名。我假设您的操作系统或安全软件禁止开发服务器创建出站连接。另一种可能性是您的操作系统上的主机文件中有无效条目。

此外,还有许多类似的问题可以帮助您。

于 2013-03-19T06:49:39.343 回答