python中的HTTPConnection请求socket.gaierror

时间:2012-01-26 13:55:00

标签: python

我在尝试通过发送'GET'HTTP请求来检索XML时遇到错误。

from httplib import HTTPConnection
import urllib

params = urllib.urlencode({'sK': 'test', 'sXML': 1})
httpCon = HTTPConnection("http://www.podnapisi.net",80)
httpCon.request('GET', '/en/ppodnapisi/search',params)
r1 = httpCon.getresponse()

这是我得到的错误:

.....
File "C:\Python27\lib\socket.py", line 553, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
socket.gaierror: [Errno 11004] getaddrinfo failed

我要检索的XML HERE

如何解决此错误?

提前致谢...

2 个答案:

答案 0 :(得分:8)

HTTPConnection构造函数中没有方案(http://):

httpCon = HTTPConnection("www.podnapisi.net",80)

它已经知道它是HTTP,它是一个HTTPConnection对象:)

答案 1 :(得分:2)

您不小心将domain参数中的协议前缀包含在HTTPConnection中。你想要:

httpCon = HTTPConnection("www.podnapisi.net", 80)

通常,此错误表示将域名解析为IP地址时出现问题。在它可能只是间歇性的。如果问题仍然存在,请检查系统上的DNS配置。

例如,您可以set it to use Google's public DNS server。有关如何在Microsoft Windows上配置DNS服务器的详细信息,请参阅Microsoft's knowledge database