2009-12-03 121 views
3

編輯:urllib2可以發出HTTP/1.1請求嗎?

這個問題是無效的。原來透明代理正在作出即使的urllib/httplib的確實作出HTTP 1.1請求最初的向前HTTP 1.0請求。

原來的問題:

默認urllib2.urlopen總是讓一個HTTP 1.0請求。

有什麼辦法得到它談的HTTP 1.1嗎?

回答

12

爲什麼你認爲它不是已經使用了HTTP 1.1嗎?你有沒有嘗試類似...:

>>> import urllib2 
>>> urllib2._opener.handlers[1].set_http_debuglevel(100) 
>>> urllib2.urlopen('http://mit.edu').read()[:10] 
connect: (mit.edu, 80) 
send: 'GET/HTTP/1.1 

(etc等)?這應該表明它已經發送了一個1.1 GET請求。

3

的urllib2使用httplib的進行HTTP請求。我的Python 2.6.4在httplib中肯定使用HTTP/1.1,儘管它可以處理來自1.1,1.0或0.9服務器的響應。早在2.3,這似乎是的情況下(以及可能回到1.5)

然而,如果它是通過代理需要隧道,它將發送類似的請求:

CONNECT host:port HTTP/1.0 

並且該/1.0字符串是硬編碼的。

你使用的是什麼版本的Python,以及如何使用urllib2?

+0

我使用的是2.4和2.5。請參閱這個自我回答的後續問題,以解決正在進行的HTTP 1.1通過魷魚HTTPS連接http://stackoverflow.com/questions/1841730/how-can-urllib2-httplib-make-http-1-1-對於-HTTPS的連接通孔-A-魷魚代理/ 1841740 – Cheekysoft 2009-12-03 18:03:03

相關問題