在蟒2,有可能通过执行获得从urllib的调试输出

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

然而,在python 3它看起来像这样已被移动到

http.client.HTTPConnection.set_debuglevel(level)

然而,我使用的urllib不直接http.client。我该如何设定,让我的http请求显示这样的调试信息?

下面是一个使用至今。什么是前进,如果我希望能够得到调试信息的最佳方式是什么我“米?

#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")
# ...
有帮助吗?

解决方案

您是在第一时间。你可以简单地在文件打开HTTP调试应用程序范围的开始添加一行http.client.HTTPConnection.debuglevel = 1urllib.request仍然使用http.client

似乎还有一个方法来设置一个处理程序DEBUGLEVEL(通过创建urllib.request.HTTPHandler(debuglevel=1)和建设的首战与),但在我安装的Python3(3.0b3)它实际上没有实现。我想,在最近的版本改变了!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top