httpx 故障排除
本页列出了使用 HTTPX 进行开发时可能遇到的一些常见问题或问题,以及可能的解决方案。
代理
"The handshake operation timed out“,当使用代理时
描述:使用代理并发出 HTTPS 请求时,您会看到如下所示的异常:
httpx.ProxyError: _ssl.c:1091: The handshake operation timed out
类似问题:encode/httpx#1412, encode/httpx#1433
解决方案:您可能已经像这样设置了代理...
proxies = {
"http://": "http://myproxy.org",
"https://": "https://myproxy.org",
}
使用此设置,您将告诉 HTTPX 使用 HTTP 连接到 HTTP 请求的代理,并使用 HTTPS 进行 HTTPS 请求。
但是,如果您遇到上述错误,则可能是您的代理不支持通过HTTPS进行连接。别担心:这是一个常见的陷阱。
将 HTTPS 代理的方案更改为 :http://...
,而不是 :https://...
proxies = {
"http://": "http://myproxy.org",
"https://": "http://myproxy.org",
}
这可以简化为:
proxies = "http://myproxy.org"
有关更多信息,请参阅代理:转发与隧道。
向 HTTPS 代理发出请求时出错
描述:您的代理确实支持通过HTTPS连接,但是您看到的错误...
httpx.ProxyError: [SSL: PRE_MAC_LENGTH_TOO_LONG] invalid alert (_ssl.c:1091)
类似的问题:encode/httpx#1424。
解决方法:HTTPX 目前无法正确支持 HTTPS 代理。如果这是你感兴趣的东西,请参阅编码/httpx#1434,并考虑在那里伸出援手。