小编典典

打开python 3 urllib的调试输出

python

在python 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")
# ...

阅读 153

收藏
2021-01-20

共1个答案

小编典典

你第一次是对的。您只需http.client.HTTPConnection.debuglevel = 1在文件的开头添加一行即可在整个应用程序范围内打开HTTP调试。urllib.request仍然使用http.client

似乎还有一种方法可以为单个处理程序设置调试级别(通过urllib.request.HTTPHandler(debuglevel=1)使用该程序创建和构建一个打开器),但是在我安装的Python3(3.0b3)上却没有实际实现。我想这在最新版本中已更改!

2021-01-20