Python requests 模块开启 Debug 模式

@Anankke  April 17, 2019

如何给 Python requests 模块开启 Debug 模式

除非你在用很老的 requests 0.x,这个方法都是通用的。

什么?9102 年了还有人在用 python2?

requests 方法的 config 参数已全部删除, 现在配置这些选项都在 Session ,比如 keep-alive 和最大数目的重定向。 日志详细程度选项应当由配置日志来处理。

以下是个例子。

import requests
import logging

# 启用调试于 http.client 级别 (requests->urllib3->http.client)
# 你将能看到 REQUEST,包括 HEADERS 和 DATA,以及包含 HEADERS 但不包含 DATA 的 RESPONSE。
# 唯一缺少的是 response.body,它不会被 log 记录。
try:
    from http.client import HTTPConnection
except ImportError:
    from httplib import HTTPConnection
HTTPConnection.debuglevel = 1

logging.basicConfig() # 初始化 logging,否则不会看到任何 requests 的输出。
logging.getLogger().setLevel(logging.DEBUG)
requests_log = logging.getLogger("requests.packages.urllib3")
requests_log.setLevel(logging.DEBUG)
requests_log.propagate = True

requests.get('http://httpbin.org/headers')

这样就可以看到 Debug log 了。


添加新评论