【问题标题】:Why can't I establish a connection to the Uber API?为什么我无法与 Uber API 建立连接?
【发布时间】:2017-04-24 15:49:05
【问题描述】:

我按照文档运行代码

from uber_rides.session import Session
from uber_rides.client import UberRidesClient

session = Session(server_token=<TOKEN>)
client = UberRidesClient(session)
response = client.get_products(37.77, -122.41)

虽然我在代理服务器后面。并引发了以下连接错误。

Traceback(最近一次调用最后一次):文件 “/home/djokester/anaconda3/lib/python3.5/site-packages/requests/packages/urllib3/connection.py”, 第 141 行,在 _new_conn (self.host, self.port), self.timeout, **extra_kw) 文件“/home/djokester/anaconda3/lib/python3.5/site-packages/requests/packages/urllib3/util/connection.py”, 第 83 行,在 create_connection 中 引发错误文件“/home/djokester/anaconda3/lib/python3.5/site-packages/requests/packages/urllib3/util/connection.py”, 第 73 行,在 create_connection 中 sock.connect(sa) ConnectionRefusedError: [Errno 111] 连接被拒绝

在处理上述异常的过程中,又发生了一个异常:

Traceback(最近一次调用最后一次):文件 “/home/djokester/anaconda3/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py”, 第 600 行,在 urlopen 中 chunked=chunked)文件“/home/djokester/anaconda3/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py”, 第 345 行,在 _make_request self._validate_conn(conn) 文件“/home/djokester/anaconda3/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py”, 第 844 行,在 _validate_conn conn.connect() 文件“/home/djokester/anaconda3/lib/python3.5/site-packages/requests/packages/urllib3/connection.py”, 第 284 行,连接中 conn = self._new_conn() 文件“/home/djokester/anaconda3/lib/python3.5/site-packages/requests/packages/urllib3/connection.py”, 第 150 行,在 _new_conn self, "无法建立新连接:%s" % e) requests.packages.urllib3.exceptions.NewConnectionError: : 无法建立新连接: [Errno 111] 连接被拒绝

在处理上述异常的过程中,又发生了一个异常:

Traceback(最近一次调用最后一次):文件 “/home/djokester/anaconda3/lib/python3.5/site-packages/requests/adapters.py”, 第 423 行,在发送中 超时=超时文件“/home/djokester/anaconda3/lib/python3.5/site-packages/requests/packages/urllib3/connectionpool.py”, 第 649 行,在 urlopen 中 _stacktrace=sys.exc_info()[2]) 文件“/home/djokester/anaconda3/lib/python3.5/site-packages/requests/packages/urllib3/util/retry.py”, 第 376 行,增量 引发 MaxRetryError(_pool, url, error 或 ResponseError(cause)) requests.packages.urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='api.uber.com', port=443):最大重试次数 超出网址:/v1.2/products?latitude=37.77&longitude=-122.41 (由 NewConnectionError(': 建立新连接失败: [Errno 111] 连接被拒绝',))

在处理上述异常的过程中,又发生了一个异常:

Traceback(最近一次调用最后一次):文件“”,第 1 行,in 文件 “/home/djokester/anaconda3/lib/python3.5/site-packages/uber_rides/client.py”, 第 124 行,在 get_products 中 return self._api_call('GET', 'v1.2/products', args=args) 文件 "/home/djokester/anaconda3/lib/python3.5/site-packages/uber_rides/client.py", 第 104 行,在 _api_call 中 返回 request.execute() 文件“/home/djokester/anaconda3/lib/python3.5/site-packages/uber_rides/request.py”, 第 152 行,执行中 返回self._send(prepared_request)文件“/home/djokester/anaconda3/lib/python3.5/site-packages/uber_rides/request.py”, 第 136 行,在 _send 响应= session.send(prepared_request)文件“/home/djokester/anaconda3/lib/python3.5/site-packages/requests/sessions.py”, 第 609 行,在发送中 r = adapter.send(request, **kwargs) 文件 "/home/djokester/anaconda3/lib/python3.5/site-packages/requests/adapters.py", 第 487 行,在发送中 引发 ConnectionError(e, request=request) requests.exceptions.ConnectionError: HTTPSConnectionPool(host='api.uber.com', port=443):最大重试次数 超出网址:/v1.2/products?latitude=37.77&longitude=-122.41 (由 NewConnectionError(': 建立新连接失败: [Errno 111] 连接被拒绝',))

【问题讨论】:

    标签: python api proxy uber-api


    【解决方案1】:

    这可能有助于为 Uber python sdk 添加对代理的支持:How can I open a website with urllib via proxy in Python?

    【讨论】:

    • 我认为即使第一个解决方案可以帮助我,它也不适合我的需要。如果我正在尝试构建一个非常混乱的解决方案的应用程序或包。
    • 我认为这是为 urllib 配置代理支持的唯一方法。游乐设施 python sdk 使用使用 urllib 的请求,这是问题的核心。我们可以在 backlog 中添加代理支持。
    猜你喜欢
    • 2014-09-27
    • 1970-01-01
    • 2010-12-29
    • 2013-11-14
    • 2020-04-06
    • 2018-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多