python - 为什么 HTTPSConnectionPool 不工作而 PoolManager 工作?

标签 python urllib3

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

urllib3.exceptions.MaxRetryError: 
HTTPSConnectionPool(host='https://some.url.com', port=443): 
Max retries exceeded with url: /some-api (Caused by <class 'socket.gaierror'>:
[Errno -2] Name or service not known)

这是我的 PoolManager 代码:

import urllib3

HOST = 'https://some.url.com'
PORT = 443
PATH = '/some-api'
xml_request = '<some xml tree/>'

manager = urllib3.PoolManager()
res = manager.request('POST', HOST+PATH, {'req':xml_request})

对于 HTTPSConnectonPool:

manager = urllib3.HTTPSConnectionPool(HOST, port=PORT)
res = manager.request('POST', PATH, {'req':xml_request})

最佳答案

https://some.url.com 不是主机名或 IP 地址,它是一个 URL。因此,您向 HTTPSConnectionPool 提供了错误的信息。

此外,PoolManagerHTTPSConnectionPool 不在同一抽象级别。 PoolManager 为您管理 ConnectionPool 实例。

关于python - 为什么 HTTPSConnectionPool 不工作而 PoolManager 工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24160244/

相关文章:

python - 获取与 urlopen 一起使用的 urllib.requests 证书包

python-2.7 - 模块 chembl_webresource_client.new_client 失败,因为 python 2.7.9 下的 urllib3 中的 ssl 损坏

python - 使用 win32com 和 python 的 Excel

python - Golang 与 Python - 十六进制字符串到 Int

python - 构造函数参数重新用于新对象?

Python在函数中复制列表

python - 我如何捕获 SSL : CERTIFICATE_VERIFY_FAILED error python?

python-3.x - Curl 给出响应但 python 没有响应并且请求调用没有终止?

python - 如何使用 pyodbc 加速批量插入 MS SQL Server