2016-04-07 4 views
0

ich mit dem Rapaport Technet API am Experimentieren, und wollen einen Endpunkt treffen, die die folgende JSON erwartet:Erstellen einer JSON Post-Anforderung mit Python

{ 
    "request": { 
     "header": { 
      "username": "my_username", 
      "password": "my_password" 
     }, 
     "body": {} 
    } 
} 

Code:

url = 'https://technet.rapaport.com:449/HTTP/JSON/Prices/GetPriceChanges.aspx' 
headers = {'username': 'my_username', 'password': 'my_password'} 
r = requests.post(url, headers) 

ich dieses Antwort:

{ 
    "response": { 
     "header": { 
      "error_code": 1001, 
      "error_message": "Invalid format" 
     }, 
     "body": {} 
    } 
} 

Irgendeine Idee, was das Problem sein könnte?

Antwort

0

Entsprechend dieser example von Rapaport Technet API-Dokumente, die ganze JSON wird gesendet, um als Daten in der POST-Anfrage. Tun Sie einfach das gleiche wie here in Requests docs.

json_data = { 
    "request": { 
     "header": { 
      "username": "my_username", 
      "password": "my_password" 
     }, 
     "body": {} 
    } 
} 
r = requests.post(url, json=json_data) 
+0

Ich habe versucht, den Header zu den Daten wie sogenannten { 'request' bewegen: { 'body': {}, 'header': { 'username': 'user', 'Passwort': 'Passwort' }}}. Immer noch der gleiche Fehler. – user3549700

+0

@ user3549700 - Oh mein Schlechter. Versuchen Sie 'json.dumps' zu verwenden und senden Sie die Daten. Ich habe meine Antwort bearbeitet. Guck mal. – JRodDynamite

+0

Versucht dies auch und das gleiche. Ich kopierte auch das Diktat, mit dem ich arbeite, aus ihrem Beispiel, also bezweifle ich, dass das Problem da ist. – user3549700