问题标签 [urllib3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python,流请求期间的捕获超时
我正在使用请求库读取 XML 事件,如下面的代码中所述。请求启动后如何引发连接丢失错误?服务器正在模拟 HTTP 推送/长轮询 -> http://en.wikipedia.org/wiki/Push_technology#Long_polling,默认情况下不会结束。如果 10 分钟后没有新消息,则应退出 while 循环。
服务器推送可以通过命令行使用 curl 进行测试:
python - 在 python 中设置全局套接字超时的正确方法是什么?
我正在使用许多不同的库,每个库都使用不同的底层方式来建立套接字连接,例如 urllib3、requests 和 httplib。这是在 python 2.7.5 中。
定期地,程序会挂在等待网络 IO 完成的库中。
我试过 socket.setdefaulttimeout(1.0) 和 socket._GLOBAL_DEFAULT_TIMEOUT = 1.0,都对我的程序没有任何影响。
设置全局套接字超时的正确方法是什么?
python - Python:使用 urllib3 超越 SSL 验证
连接到 SSL 服务器会引发错误:
错误:14090086:SSL 例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败
我正在使用这个 urllib3 python 库连接到服务器,使用这种方法:
如何忽略 SSL 验证?或者还有另一个步骤可以做到这一点?
谢谢。
python - 如何通过python获取url的内容(必须在站点登录)
我想通过 python 获取网页的内容,但它有 login 。
所以我必须先登录网站然后获取我的内容。
我怎样才能做到这一点?
python - 为什么 HTTPSConnectionPool 不起作用而 PoolManager 起作用?
我已经使用 PoolManager 和 HTTPSConnectionPool 测试了一个“POST”请求。第一个有效,另一个给我一个:
这是我的 PoolManager 代码:
对于 HTTPSConnectonPool:
python - Python urllib3 urlopen does not use retries whith specific errors
Why urlopen
from urllib3
does not retry when it hits a ReadTimeoutError
? Am I missing something ? I can get around this by using my own retry code, but I would prefer to use the one from the module.
I've even tried to explicitely put retries=3
as an argument of HTTPSConnectionPool.request()
but it does not help...
Here's my code:
Thanks !
EDIT:
Now, the response with some debug info (it's a log from openERP):
As you can see, the ReadTimeoutError
is thrown just after the expiration time, with no retries.
python-requests - 由于 urllib3 v1.8.3 已添加“socket_options”功能,如何在 python-requests lib 中指定“socket_options”?
urllib3 V1.8.3 已添加功能“socket_options”。对我来说,我想在请求库中指定 (socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)。但我不知道怎么做。 这是 urllib3 的版本更改日志。以下是 urllib3 中新功能的示例:
如果 1.8.3 版本合并到新的 requests lib 中,如何指定参数。任何答案将不胜感激。
这是我的代码:
这是错误:
==================================================== ==============================
我曾尝试使用 urllib3 v1.9 设置 (socket.SOL_SOCKET, socket.SO_REUSEADDR, 1),但失败了。time_wait状态的源端口不能被复用的原因可能是“(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)”应该在“socket.bind”之前配置。所以即使我在“HTTPConnectionPool”中设置了REUSEADDR参数,也无法使用处于time_wait状态的src端口。好难过..
这是我的尝试:
这是错误:
python - 为什么我的程序在 urllib3 记录启动新的 HTTPS 连接后挂起?
我正在尝试诊断我的一些 celery 工作进程似乎挂起几分钟的问题。我有许多任务会进行多次 IO 调用(通常是对第三方 API)。在任何给定的工作中,我可能会向各种 API 发出数千个请求。我查看了日志,它们都有urllib3
一个共同点:它们在连接到远程 url 后挂起。
在我的工作结束时(大约需要 30 分钟),通常会有一些任务被挂起。
这是我用来断定urllib3
罪魁祸首的日志示例:
然后就是这样。声明后没有记录任何内容Starting new HTTPS connection
。
这是我重新启动工人的地方:
在这种情况下,我收到了一个403
状态码。所以这可能是一个潜在的罪魁祸首。但是,我在日志中看到状态码也发生了这种情况200
。
FWIW,我也Resetting dropped connection: api.twitter.com
经常在日志中看到。
我确保timeout
在我使用requests
库提出请求的任何地方都提供 10 秒的时间。
因此,似乎提出了请求,但随后就挂起。远程服务器的响应速度可能非常慢,因此实际上从未发生超时,但我发现这不太可能,因为我的问题不仅仅发生在一个特定的域中。
我正在使用 Rabbit 3.1.3 celery:3.1.11 (Cipater) kombu:3.0.16 py:3.4.0 billiard:3.3.0.17 py-amqp:1.4.5。我正在使用前叉。
我正在使用请求==2.3.0。
urllib3
那么为什么在记录Starting new HTTPS connection
语句后我的任务似乎挂起?
编辑:我添加了很多日志记录并在下面提供更多上下文
最后记录的条目是
根据我的日志声明,罪魁祸首是 load_verify_locations。
这是requests
库中对应的代码:
因此,这似乎context.load_verify_locations(ca_certs)
导致它挂起。为什么?
python - url中的空格
我正在尝试访问带有空格的网址:
问题在于“内容类型”中的空格将字符串分隔为两个不同的块。
如何发送此请求?