2016-08-09 24 views
4

Ich habe einen sehr kleinen Python-Client geschrieben, um auf Confluence restful api zuzugreifen. Ich verwende https-Protokoll, um mit der Konfluenz zu verbinden. Ich renne in Connection reset by peer Fehler. Hier ist die vollständige Stack-Trace.Python-Client-Fehler 'Verbindung durch Peer zurückgesetzt'

/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')) 

Hier ist meine Kundennummer:

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() 

ich dieses Skript in einer virtuellen Umgebung leite und folgende Pakete werden auf dieser Umgebung installiert:

(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) 

Es geht um die sich beschweren Python-Versionsnummer, aber ich bin mir nicht sicher, wie ich mein Mac/Virtual-Environment-Python aktualisieren soll.

Ich habe versucht, Curl-Befehl und Postman beide funktionieren gut für die gegebenen Parameter.

+0

Geben Sie das Kennwort in der Datei fest einprogrammiert und versuchen Sie es erneut. Es beschwert sich dein Pip ist alt. Sie können es mit 'sudo pip install aktualisieren --upgrade pip ' –

+0

@DoronCohen Ich habe bereits Pip auf' 8.1.2' Version aktualisiert. Ich habe diesen Befehl verwendet, um dieses Problem 'pip install" -Anforderungen [Sicherheit] "zu beheben und es funktionierte wie Charme. – Rakesh

+0

Großartig. Post eine Lösung dann –

Antwort

13

Während der Installation requests Bibliothek überspringt einige der optional security packages ('pyOpenSSL', 'ndg-httpsclient' und 'pyasn1'), die für die SSL/HTTP-Verbindung benötigt werden. Sie können das Problem beheben, indem Sie entweder die Ausführung dieses Befehls

pip install "requests[security]" 

oder

pip install pyopenssl ndg-httpsclient pyasn1 
Verwandte Themen