Requests 提供 Request 类和全小写的 request 函数。改动大小写可能让一个合法 API 以错误的参数列表被调用,而不是给出简单的未知函数错误。

Request 对象描述的是 HTTP 报文,代理配置属于发送它的那个 API。普通调用如下:

response = requests.request(
    'GET', 'https://example.com/',
    proxies=routes, timeout=15
)

这里的 routes 就是为本次操作选定的代理映射。对于被允许的公开请求,免费代理列表提供了候选,可按该 Requests 安装所支持的协议进行格式化。把同一个 proxies 关键字交给 requests.Request 的构造器并不等价。

如果应用有意使用已准备好的请求,就要把报文准备与发送配置分开。会话的发送流程同样需要预期的环境合并、超时、校验和代理设置。

在替换代理端点之前,先修正 API 不匹配。构造器抛出的 TypeError 发生在该对象执行预期的网络请求之前。

相关文章