繁体   English   中英

通过带有Python的请求模块的对等方重置连接。 卷毛和邮递员工作正常。

[英]Connection reset by peer w/ Python's Request Module. Curl and Postman work fine.

Python 2.7.10

我正在对gitlab存储库进行非常基本的API调用。

我可以成功curl端点,并且可以用Postman成功调用它

但是,在尝试使用Python的请求模块时失败。

卷毛作品:

curl https://gitlab.example.com/api/v4/projects

  • 从端点输出预期的JSON响应(无需身份验证)

邮递员我也得到了预期的结果: 邮递员电话工作

但是,当我通过请求提交时: [证书是自签名的,因此verify = False]

r = requests.get("https://gitlab.example.com/api/v4/projects", verify=False)

引发错误:

Traceback (most recent call last):
  File "./repo_analyzer.py", line 36, in <module>
    r = requests.get("https://xxxxxxxxxxxx/api/v4/projects", verify=False)
  File "/Library/Python/2.7/site-packages/requests/api.py", line 72, in get
    return request('get', url, params=params, **kwargs)
  File "/Library/Python/2.7/site-packages/requests/api.py", line 58, in request
    return session.request(method=method, url=url, **kwargs)
  File "/Library/Python/2.7/site-packages/requests/sessions.py", line 508, in request
    resp = self.send(prep, **send_kwargs)
  File "/Library/Python/2.7/site-packages/requests/sessions.py", line 618, in send
    r = adapter.send(request, **kwargs)
  File "/Library/Python/2.7/site-packages/requests/adapters.py", line 490, in send
    raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', error(54, 'Connection reset by peer'))

我有点不知道为什么它不能与python一起使用,但可以正常工作。

在搜索了大量关于此的博客和帖子之后,似乎我需要通过pip更新request [security]程序包。

我在运行pip install -U requests[security]sudo pip install -U requests[security]时遇到错误,所以我从头开始:

  1. 下载Python 2.7并从官方网站重新安装
  2. pip install requests
  3. pip install -U requests
  4. pip install -U requests[security]

之后,通话成功。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM