2009-04-25 52 views
13

在Python 2,這是可以通過做打開調試輸出爲Python 3的urllib

import httplib 
import urllib 
httplib.HTTPConnection.debuglevel = 1 
response = urllib.urlopen('http://example.com').read() 

然而,爲了得到urllib的調試輸出,在Python 3看起來這已被轉移到

http.client.HTTPConnection.set_debuglevel(level) 

但是,我直接使用urllib而不是http.client。我如何設置它以便我的http請求以這種方式顯示調試信息?

下面是使用至今。什麼是前進,如果我希望能夠得到調試信息的最佳方式是什麼我「M-

#Request Login page 
cookiejar = http.cookiejar.CookieJar() 
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cookiejar)) 
request = urllib.request.Request(options.uri) 
add_std_headers(request) 
response = opener.open(request) 
response_string = response.read().decode("utf8") 
# ... 
+2

這實際上是一個Python bug。已提交https://bugs.python.org/issue26892。 – 2016-04-30 16:52:00

回答

12

你是在第一時間,你可以簡單地添加行http.client.HTTPConnection.debuglevel = 1在文件打開HTTP調試啓動應用程序範圍內。urllib.request仍然使用http.client

似乎還有一個方法來設置一個處理程序DEBUGLEVEL(通過創建urllib.request.HTTPHandler(debuglevel=1)和建設的首戰與),但是在我安裝Python3(3.0b3)時,它實際上並不是impl emented。我想這是更新版本中的改變!