无法从GAE本地环境获取URL

5 投票
1 回答
572 浏览
提问于 2025-04-17 19:36

我在使用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解释器中使用urllib2库,成功获取网址。

在谷歌服务器上运行的部署代码也正常工作,问题出在我的本地环境,但我找不到具体是什么原因。

我还尝试过使用gae的urlfetch,结果也是类似(同样是getaddrinfo失败)。

几天前我切换到了谷歌的DNS,使用urllib2库时也没问题,但切换回互联网服务提供商提供的DNS也没有解决问题。

编辑:当用IP地址调用这个函数时,可以成功获取网址:

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

提前谢谢你们!

1 个回答

2

我觉得你的DNS解析器可能无法找到这个主机名。也就是说,你的操作系统或者安全软件可能不允许开发服务器建立外部连接。还有一种可能是,你的操作系统的hosts文件里有错误的条目。

另外,还有很多类似的问题,可能对你有帮助。

撰写回答