2012-01-26 5 views
1

Сегодня я столкнулся с ошибкой при попытке получить XML, отправив HTTP-запрос GET.HTTPConnection request socket.gaierror в python

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

Как я могу исправить эту ошибку?

Спасибо заранее ...

ответ

8

Нет схемы (http://) в конструкторе HttpConnection:

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

Он уже знает, что это HTTP, что это HttpConnection объект :)

+0

Спасибо ... он работает сейчас, но почему я получаю Данные HTML вместо XML при печати «print r1.read()»? как я могу получить XML? – TeFa

+0

ОК, я получил его сейчас. просто необходимо добавить параметры «params» к запрашиваемой ссылке в качестве следующей: httpCon.request («GET», «/ en/ppodnapisi/search?» + params) – TeFa

2

Вы случайно включен префикс протокола в domain аргумента HTTPConnection. Вы хотите:

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

Как правило, Эта ошибка указывает на то, что была проблема с решением доменного имени на IP-адрес. В нем может быть просто прерывисто. Если проблема не устранена, проверьте конфигурацию DNS в вашей системе.

Например, вы можете set it to use Google's public DNS server. Дополнительные сведения о настройке DNS-сервера в Microsoft Windows см. В разделе Microsoft's knowledge database.

Смежные вопросы