工作,我一直用這個功能來處理HTTP請求,沒有任何問題:刪除請求不與身體
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
當我需要做的沒有身體實體DELETE請求我沒有問題,但是當我嘗試添加一個(當服務器需要時),我從服務器收到一條錯誤消息,告訴主體不能爲null,就好像沒有主體已經發送一樣。任何想法,爲什麼這可能會發生?我正在使用請求模塊和Python 2.7.12。據我所知,數據可以通過DELETE請求發送。謝謝!
你是什麼意思「身體實體」? – pbuck
我的意思是實體或數據換句話說,對此表示遺憾 – user3192199
當DELETE包含實體主體時,有些客戶端和某些服務器出現問題:http://stackoverflow.com/questions/299628/is-an-entity-body-允許的HTTP刪除請求,例如&許多搜索結果。一些服務器(顯然)將DELETE轉換爲POST,其他服務器只執行DELETE,但刪除正文。在你的情況下,調查你的服務器是否允許刪除身體? – pbuck