问题标签 [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.

0 投票
1 回答
2056 浏览

python - Python,流请求期间的捕获超时

我正在使用请求库读取 XML 事件,如下面的代码中所述。请求启动后如何引发连接丢失错误?服务器正在模拟 HTTP 推送/长轮询 -> http://en.wikipedia.org/wiki/Push_technology#Long_polling,默认情况下不会结束。如果 10 分钟后没有新消息,则应退出 while 循环。

服务器推送可以通过命令行使用 curl 进行测试:

0 投票
1 回答
5532 浏览

python - 在 python 中设置全局套接字超时的正确方法是什么?

我正在使用许多不同的库,每个库都使用不同的底层方式来建立套接字连接,例如 urllib3、requests 和 httplib。这是在 python 2.7.5 中。

定期地,程序会挂在等待网络 IO 完成的库中。

我试过 socket.setdefaulttimeout(1.0) 和 socket._GLOBAL_DEFAULT_TIMEOUT = 1.0,都对我的程序没有任何影响。

设置全局套接字超时的正确方法是什么?

0 投票
1 回答
525 浏览

python - 使用 Python 3.4.1 和 Urllib3 访问 Imgur API

我正试图围绕 Imgur API。我找到了一些如何将授权标头发送到 Imgur 的好例子,但是它们都使用 urllib2,而我显然使用 pyhton 3.4.1 只能使用 urllib3。

所以我尝试了几件事,但似乎都没有奏效。

这篇文章中,我尝试使用 basic_auth 标头:

这给了我一个 403 错误。

这篇文章中,我尝试了这种方法:

这也返回 403。

但是,现在我通过阅读 urllib3 文档更接近了一步,并尝试将授权作为字段发送。

但是,这会返回 401。

那么有人可以帮助我使用这些或其他方法找出与 Imgur API 的基本匿名交互吗?

0 投票
2 回答
4650 浏览

python - Python:使用 urllib3 超越 SSL 验证

连接到 SSL 服务器会引发错误:

错误:14090086:SSL 例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败

我正在使用这个 urllib3 python 库连接到服务器,使用这种方法:

如何忽略 SSL 验证?或者还有另一个步骤可以做到这一点?

谢谢。

0 投票
1 回答
68 浏览

python - 如何通过python获取url的内容(必须在站点登录)

我想通过 python 获取网页的内容,但它有 login 。
所以我必须先登录网站然后获取我的内容。
我怎样才能做到这一点?

0 投票
1 回答
5337 浏览

python - 为什么 HTTPSConnectionPool 不起作用而 PoolManager 起作用?

我已经使用 PoolManager 和 HTTPSConnectionPool 测试了一个“POST”请求。第一个有效,另一个给我一个:

这是我的 PoolManager 代码:

对于 HTTPSConnectonPool:

0 投票
1 回答
1430 浏览

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.

0 投票
2 回答
2615 浏览

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端口。好难过..

这是我的尝试:

这是错误:

0 投票
1 回答
7180 浏览

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)导致它挂起。为什么?

0 投票
4 回答
4627 浏览

python - url中的空格

我正在尝试访问带有空格的网址:

问题在于“内容类型”中的空格将字符串分隔为两个不同的块。

如何发送此请求?