2016-06-17 7 views
0

Ich versuche, den Informatica Cloud REST API mit Python (3,51) Anfragen (Requests Paketversion ist 2.10.0) zu konsumieren:Python 3.51 Anfragen verursachen Fehler Proxy

import requests 

username='myuser' 
password='mypassword' 

genheaders = { 
    'Content-Type': 'application/json', 
} 

data = '{"@type":"login","username":"' + username + '","password":"' + password +'"}' 
response = requests.post('https://app.informaticaondemand.com/ma/api/v2/user/login', headers=genheaders, data=data) 

auf meinem lokalen Rechner, alle Arbeiten herrlich. Auf meinem TEST-Server erhalte ich jedoch den folgenden Fehler:

HTTPSConnectionPool (host = 'app.informaticaondemand.com', port = 443): Max Wiederholungen überschritten mit URL:/ma/api/v2/Benutzer/Login (Durch ProxyError verursacht ('Kann keine Verbindung zum Proxy herstellen.', NewConnectionError (': Eine neue Verbindung konnte nicht hergestellt werden: [WinError 10060] Ein Verbindungsversuch ist fehlgeschlagen, weil der verbundene Teilnehmer nach einer gewissen Zeit nicht richtig reagiert hat oder eine Verbindung fehlgeschlagen ist) weil verbundene Host fehlgeschlagen ‚)))

ärgerlicher, curl funktioniert auf der Server-Maschine hat reagieren:

curl -H "Content -Type: application/json" -X POST --data @Login.txt https://app.informaticaondemand.com/ma/api/v2/user/login -k 

Wo login.txt hat:

{ "@type": "login", "username": "myuser", "Passwort": "mypassword"}

Wenn ich nicht den Schalter -k, Ich bekomme:

curl: (60) SSL-Zertifikat Problem, überprüfen Sie, ob das CA-Zertifikat in Ordnung ist. Details: Fehler: 14090086: SSLroutines: SSL3_GET_SERVER_CERTIFICATE: http://curl.haxx.se/docs/sslcerts.html

Alles ist mit dem Parameter -k fein: Zertifikat Mehr Details hier gescheitert überprüfen.

Ich habe versucht, den Proxy über Umgebungsvariablen, vor der Ausführung python.exe Einstellung:

set HTTP_PROXY=10.123.123.10:8080 
set HTTPS_PROXY=10.123.123.10:8080 

Aber die Ergebnisse sind die gleichen.

Irgendwelche Ideen, was als nächstes zu versuchen?

Antwort

1

Vielleicht versuchen Sie Folgendes:

import requests 

proxies = { 
    'http': 'http://10.123.123.10:8080', 
    'https': '10.123.123.10:8080', 
} 

response = requests.post('https://app.informaticaondemand.com/ma/api/v2/user/login', headers=genheaders, data=data, proxies=proxies) 

Link zu Anfragen Proxy-Dokumentation: http://docs.python-requests.org/en/master/user/advanced/#proxies