#2 requests 遇到的错误:Failed to parse

2021-07-15

今天使用 requests 时发现居然报错:Failed to parse: http://xxxxx

重要的是我不是直接是用 requests,而是使用另一个工具库,然后它来使用 requests 发起网络请求,所以我就完全没有想到着一层。更重要的是代码之前运行的好好的,没有任何问题。而且 requests 这样一个通用的库,谁能想到它会有问题呢?

我怀疑了好多情况,比如防火墙,代理,网络环境等等,但是没有找到原因。最后开始看工具库的源码,看到头都大了,也没有一点发现。

最后还是在 StackOverflow 上看到有人提醒,可能是 requests 下面的 urllib3 依赖里面有点什么问题,建议先升级一下看看。一试果然好了。

我没有仔细分析其具体原因,留给记录,下次遇到类似问题要小心。

#1 Requests 的日志配置

2019-08-09
import http.client
import logging

import requests

LOG_LEVEL = logging.DEBUG
LOG_FORMAT = '%(asctime)s [%(thread)s] [%(name)s:%(funcName)s#%(lineno)d] %(levelname)s %(message)s'
logging.basicConfig(level=LOG_LEVEL, format=LOG_FORMAT)

LOG_HTTP = logging.getLogger("http.client")

def httpclient_log(*args):
    LOG_HTTP.log(logging.DEBUG, " ".join(args))

http.client.print = httpclient_log
http.client.HTTPConnection.debuglevel = 1