即使我使用requests.put(),服务器也将它的请求识别为“GET”。request.put()但它请求使用PUT在我的Python上使用GET
这是我的代码。
import requests
import json
url = 'https://api.domain.com/test/partners/digital-pie/users/assignee'
payload = """
{
"assignee": {
"district": "3",
"phone": "01010001000",
"carNum": "598865"
},
"deduction": {
"min": 1000,
"max": 2000
},
"meta": {
"unit-label": "1-1-1",
"year": "2017",
"quarter": "2"
}
}
"""
headers = {"content-type": "application/json", "x-api-key": "test_api_dp" }
r = requests.put(url, data=json.dumps(payload), headers=headers)
print("status code:", r.status_code)
print('encoding:', r.encoding)
print('text:', r.text)
print('json:', r.json())
当我通过wireshark检查包时,我可以知道我的代码请求为“GET”。
哪个是错我的代码?
增加了更多。
我修正了下面的代码,发现302重定向是通过检查r.history发生的。 但仍然坚持为什么302发生。
当我比较邮差。它显示正确。
2017-08-14
sungyong
+0
'requests.put()'肯定发送'PUT'方法。你确定服务器没有响应'302'或'303'重定向吗? –
+0
您在截图中显示的GET请求**与您的请求**不符。 PUT进入'/ test/partners/digital-pie/users/assignee',GET用于'/ partners/digital-pie/users/assignee'。我还注意到,该服务器以404请求响应该GET请求。 –
+0
注意:当使用'json = payload'而不是'data'时,不需要使用'json.dumps()'或设置Content-Type'头。 –