Ich habe diese Funktion unter Verwendung von HTTP-Anfragen ohne Probleme zu behandeln:DELETE Anfrage in Python „Anfragen“ Modul funktioniert nicht mit Körper
def do_request(self, method, url, **kwargs):
params = kwargs.get('params', None)
headers = kwargs.get('headers', None)
payload = kwargs.get('data', None)
request_method = {'GET':requests.get, 'POST': requests.post, 'PUT': requests.put, 'DELETE': requests.delete}
request_url = url
req = request_method[method]
try:
res = req(request_url, headers=headers, params=params, data=json.dumps(payload))
except (requests.exceptions.ConnectionError, requests.exceptions.RequestException) as e:
data = {'has_error':True, 'error_message':e.message}
return data
try:
data = res.json()
data.update({'has_error':False, 'error_message':''})
except ValueError as e:
msg = "Cannot read response, %s" %(e.message)
data = {'has_error':True, 'error_message':msg}
if not res.ok:
msg = "Response not ok"
data.update({'has_error':True, 'error_message':msg})
if res.status_code >= 400:
msg = 'Error code: ' + str(res.status_code) + '\n' + data['errorCode']
data.update({'has_error':True, 'error_message': msg})
return data
Wenn ich ohne Körper Einheit eine DELETE-Anfrage zu tun, habe ich nicht haben Probleme, aber wenn ich versuche, eine hinzuzufügen (wenn vom Server benötigt), erhalte ich eine Fehlermeldung vom Server, dass der Körper nicht null sein kann, als ob kein Körper gesendet worden wäre. Irgendwelche Ideen, warum das passieren könnte? Ich benutze Anfragen Modul und Python 2.7.12. Soweit ich weiß, können Daten in einer DELETE-Anfrage gesendet werden. Vielen Dank!
Was meinst du mit „Körper Einheit“? – pbuck
Ich meinte Entity Body oder Daten mit anderen Worten, tut mir leid, dass – user3192199
Es gibt Probleme mit einigen Clients und einigen Servern, wenn DELETE Entity-Body enthält: http://StackOverflow.com/Questions/299628/IS-Antity-Body- erlaubt-für-eine-HTTP-Lösch-Anfrage, zum Beispiel & viele Suchergebnisse. Einige Server (anscheinend) konvertieren die DELETE in einen POST, andere führen einfach die DELETE aus, aber den Körper fallen lassen. In Ihrem Fall untersuchen, ob Ihr Server das Löschen mit Körper erlaubt? – pbuck