2012-08-06 23 views
0

我使用錯誤而使用康恩= httplib.HTTPConnection( 「HTTP:// IPADDR:端口」)

我能夠做的PUT/GET使用IPADDR:使用我的Firefox的客戶端! 。 但我看到了這個錯誤的腳本執行:

File "post_python.py", line 5, in <module> 
    conn.request("GET", "", params, headers) 
    File "/usr/lib64/python2.6/httplib.py", line 914, in request 
    self._send_request(method, url, body, headers) 
    File "/usr/lib64/python2.6/httplib.py", line 951, in _send_request 
    self.endheaders() 
    File "/usr/lib64/python2.6/httplib.py", line 908, in endheaders 
    self._send_output() 
    File "/usr/lib64/python2.6/httplib.py", line 780, in _send_output 
    self.send(msg) 
    File "/usr/lib64/python2.6/httplib.py", line 739, in send 
    self.connect() 
    File "/usr/lib64/python2.6/httplib.py", line 720, in connect 
    self.timeout) 
    File "/usr/lib64/python2.6/socket.py", line 553, in create_connection 
    for res in getaddrinfo(host, port, 0, SOCK_STREAM): 
socket.gaierror: [Errno -2] Name or service not known" 

請有人可以幫我嗎?

回答

2

試試這個

conn = httplib.HTTPConnection("x.x.x.x", port) 
conn.request("GET", "", params, headers) 
+0

感謝它的工作,但你可以指向我的任何鏈接,這是解釋? http://docs.python.org/library/httplib.html 我指的是文檔,它說下面的所有東西都是一樣的! ('www.cwi.nl') > h1 = httplib.HTTPConnection('www.cwi.nl') > h2 = httplib.HTTPConnection('www.cwi.nl:80') > h3 = httplib.HTTPConnection('www.cwi.nl' ,80) > h3 = httplib.HTTPConnection('www.cwi.nl',80,timeout = 10) – user1524625 2012-08-06 23:44:43

+0

是的,文檔是正確的。您的錯誤是在IP地址之前加入「http://」。沒什麼大不了。 :-) – MiniQuark 2012-08-07 11:00:14

2

您可能在瀏覽器已經知道的代理之間。如果你在linux下嘗試設置http_proxy環境變量。 (:IP地址前沒有 「// HTTP」):

+0

@loan Alexandru Cucu:感謝您的指針,我只是檢查了我的瀏覽器代理設置,沒有。 – user1524625 2012-08-06 22:48:26

0

如果是IPv6地址,您需要使用括號按RFC 2732將其包圍。如果我沒有記錯,那就是如果你不使用括號就會得到的錯誤信息。

httplib.HTTPConnection ("http://[::1]:8080") 
conn.request("GET", "", params, headers) 
+0

它不是IPV6地址,概率由上述答案修復。感謝 – user1524625 2012-08-06 23:49:36

+0

那麼你應該接受這個答案,所以你的接受率保持高位,所以Alexandru得到他的評價:) – kichik 2012-08-07 00:20:17