2012-01-26 6 views
1

今日、「GET」HTTPリクエストを送信してXMLを取得しようとすると、エラーが発生しました。pythonのHTTPConnectionリクエストsocket.gaierror

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 

私はこのエラーを修正するにはどうすればよいHERE

を取得しようとしているXMLは?あなたが誤ってHTTPConnectiondomain引数のプロトコルプレフィックスを含ま

答えて

8

ないスキーム(http://)するHTTPConnectionコンストラクタで:

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

それはすでにそれがするHTTPConnectionオブジェクトだ、それはHTTPです知っている:)

+0

おかげで...それが機能するようになりましたが、なぜ私は入手できますか"print r1.read()"を印刷するときにXMLの代わりにHTMLデータを使用しますか?どうすればXMLを入手できますか? – TeFa

+0

私はそれを今得ました。 httpCon.request( 'GET'、 "/ en/ppodnapisi/search?" + params)のように、リクエストされたリンクにパラメータ 'params' – TeFa

2

事前に

おかげで...。あなたは欲しい:

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

一般に、このエラーは、ドメイン名をIPアドレスに解決する際に問題があったことを示します。それはただ断続的かもしれない。問題が解決しない場合は、システムのDNS設定を確認してください。

たとえば、set it to use Google's public DNS serverとすることができます。 Microsoft WindowsでDNSサーバーを構成する方法の詳細については、Microsoft's knowledge databaseを参照してください。

関連する問題