【问题标题】:Python Requests HTTPConnectionPool and Max retries exceeded with urlPython 请求 HTTPConnectionPool 和 url 超出了最大重试次数
【发布时间】:2014-07-25 13:34:19
【问题描述】:

在 Linux 集群上,我收到 Requests 错误:

ConnectionError: HTTPConnectionPool(host='andes-1-47', port=8181): Max 重试次数超出 url: /jammy/api/v1 (Caused by : '')

这个错误是什么意思?是 Requests 问题还是主机上的问题,解决方法是什么?

顺便说一句,该程序可以在具有 localhost 的 Windows 和 Linux 独立机器上成功运行。

【问题讨论】:

    标签: python python-requests


    【解决方案1】:

    所以Max retries exceeded with url: ... 位可能会非常混乱。很可能(因为您提到这可以使用 localhost)这是您在某处部署的应用程序。这也可以解释为什么主机名是 andes-1-47 而不是大多数人所期望的(例如,example.com)。我最好的猜测是您需要使用andes-1-47 的IP 地址(例如192.168.0.255),或者您的linux 集群不知道如何解析andes-1-47,您应该将它添加到您的/etc/hosts 文件中(即,添加行:192.168.0.255 andes-1-47)。

    如果您想查看您的 linux 集群是否可以解析名称,您可以随时使用此脚本:

    import socket
    
    socket.create_connection(('andes-1-47', 8181), timeout=2)
    

    如果您无法解析主机名,这将在 2 秒后超时。 (您可以删除超时,但确定主机名是否可以通过这种方式访问​​可能需要更长的时间。)

    【讨论】:

    • 它是一个内部集群。在输入的新终端中:import socket socket.create_connection(('andes-1-47', 8181), timeout=2)。 'andes-1-47' 确实解决了,奇怪的是所有查询请求现在都可以工作。只添加了以上两行。想知道这是为什么?
    【解决方案2】:

    urlopen 调用中,尝试设置retries=Falseretries=1 以查看差异。默认是3,听起来很合理。

    http://urllib3.readthedocs.org/en/latest/pools.html#urllib3.connectionpool.HTTPConnectionPool.urlopen

    【讨论】:

    • 我正在使用 python 请求?
    猜你喜欢
    • 1970-01-01
    • 2021-04-03
    • 1970-01-01
    • 2020-07-19
    • 2021-02-03
    • 2019-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多