Python客户端错误'由peer重置连接'

问题描述 投票:7回答:2

我写了一个非常小的python客户端来访问confluence restful api。我使用https协议连接汇合。我遇到Connection reset by peer错误。这是完整的堆栈跟踪。

/Users/rakesh.kumar/.virtualenvs/wpToConfluence.py/lib/python2.7/site-packages/requests/packages/urllib3/util/ssl_.py:318: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#snimissingwarning.
  SNIMissingWarning
/Users/rakesh.kumar/.virtualenvs/wpToConfluence.py/lib/python2.7/site-packages/requests/packages/urllib3/util/ssl_.py:122: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
Traceback (most recent call last):
  File "wpToConfluence.py", line 15, in <module>
    main()
  File "wpToConfluence.py", line 11, in main
    headers={'content-type': 'application/json'})
  File "/Users/rakesh.kumar/.virtualenvs/wpToConfluence.py/lib/python2.7/site-packages/requests/api.py", line 71, in get
    return request('get', url, params=params, **kwargs)
  File "/Users/rakesh.kumar/.virtualenvs/wpToConfluence.py/lib/python2.7/site-packages/requests/api.py", line 57, in request
    return session.request(method=method, url=url, **kwargs)
  File "/Users/rakesh.kumar/.virtualenvs/wpToConfluence.py/lib/python2.7/site-packages/requests/sessions.py", line 475, in request
    resp = self.send(prep, **send_kwargs)
  File "/Users/rakesh.kumar/.virtualenvs/wpToConfluence.py/lib/python2.7/site-packages/requests/sessions.py", line 585, in send
    r = adapter.send(request, **kwargs)
  File "/Users/rakesh.kumar/.virtualenvs/wpToConfluence.py/lib/python2.7/site-packages/requests/adapters.py", line 453, in send
    raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', error(54, 'Connection reset by peer'))

这是我的客户端代码:

import requests


def main():
    auth = open('/tmp/confluence', 'r').readline().strip()

    username = 'rakesh.kumar'

    response = requests.get("https://<HOST-NAME>/rest/api/content/",
                            auth=(username, auth),
                            headers={'content-type': 'application/json'})
    print response

if __name__ == "__main__":
    main()

我在虚拟环境中运行此脚本,并在该环境中安装以下软件包:

(wpToConfluence.py)➜  Python pip list
You are using pip version 6.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
appnope (0.1.0)
backports.shutil-get-terminal-size (1.0.0)
decorator (4.0.10)
ipdb (0.10.1)
ipython (5.0.0)
ipython-genutils (0.1.0)
pathlib2 (2.1.0)
pexpect (4.2.0)
pickleshare (0.7.3)
pip (6.1.1)
prompt-toolkit (1.0.5)
ptyprocess (0.5.1)
Pygments (2.1.3)
requests (2.10.0)
setuptools (25.1.6)
simplegeneric (0.8.1)
six (1.10.0)
traitlets (4.2.2)
urllib3 (1.16)
wcwidth (0.1.7)

它确实抱怨python版本号,但我不知道如何更新我的Mac /虚拟环境python。

我试图卷曲命令和Postman它们都适用于给定的参数。

python python-requests confluence-rest-api
2个回答
23
投票

在安装requests库时,它会跳过SSL / Https连接所需的optional security packages('pyOpenSSL','ndg-httpsclient'和'pyasn1')。您可以通过运行此命令来修复它

pip install "requests[security]"

要么

pip install pyopenssl ndg-httpsclient pyasn1

1
投票

我尝试安装上面答案中提供的所有可选安全包。但似乎没有任何效果。

一个重要的GOTCHA:检查您的url端点是否主动阻止编程访问。

看一下网站根目录中的robots.txt文件:http://myweburl.com/robots.txt

如果它包含如下所示的文本:User-agent:* Disallow:/

这个网站不喜欢并且想要抓取。这为您提供了相同的可怕错误54,由对等方重置连接。

这是一个快照:

https://www.aclibrary.org/robots.txt

User-agent:discobot Disallow:/ User-agent:AddThis.com Disallow:/ User-agent:Yandex Disallow:/ User-agent:Baiduspider Disallow:/ User-agent:Baiduspider-video Disallow:/ User-agent:Baiduspider- image Disallow:/ User-agent:SemrushBot Disallow:/ User-agent:SemrushBot-SA Disallow:/ User-Agent:W3C-checklink Crawl-delay:0 User-agent:Twitterbot Disallow:User-agent:* Crawl-delay: 10 Disallow:/er.php Disallow:/err.php Disallow:/go.php Disallow:/friendly.php Disallow:/ld.php Disallow:/srch.php Sitemap:https://aclibrary.org/sitemap.xml

© www.soinside.com 2019 - 2024. All rights reserved.