Mit %20 statt + für Raum in python query-Parameter

Ich geschrieben habe das folgende python-Skript mit python-requests (http://requests.readthedocs.org/en/latest/):

import requests

payload = {'key1': 'value  1', 'key2': 'value 2'}
headers = {'Content-Type': 'application/json;charset=UTF-8'}
r = requests.get("http://example.com/service", params=payload, headers=headers, 
             auth=("admin", "password"))

Wenn ich sehe, das access log des Servers, der eingehende request ist:
/service?key1=value++1&key2=value+2

Aber der server erwartet ...value%20%201&...

Habe ich gelesen, dass mit einem + als Platzhalter für ein Leerzeichen ist Teil der content-type application/x-www-form-urlencoded, aber klar habe ich angefordert application/json.

Jemand weiß, wie man mit %20 als Leerzeichen in der Abfrage-Parameter der pythons Anfragen?

  • Hast du jemals dieses Problem beheben? Hast du Sie einfach gehen mit urllib oder ändern Sie den server, oder was?
  • Ich weiß es ehrlich gesagt nicht mehr. Schon eine ganze Weile her, und ich habe keinen Zugriff auf die Quellen mehr
  • Ich bin immer noch nicht auf diese als gut. Mist
  • überprüfen Sie meine Antwort, die einfache Lösung ist zum überschreiben der das urllib.quote_pluse mit das urllib.Zitat
Schreibe einen Kommentar