Редактировать обновление:
Я попробовал решение, приведенное на этой странице, но оно также не работает для меня:
Поместить запрос, работающий в curl, но не в Python
Я использую Python 2.7. Я пытаюсь использовать запрос PUT. Данные должны быть отправлены в виде данных.
import requests
import json
url = "http://httpbin.org/put"
data = {'lastName':'testNew'}
headers = {
'Authorization': "JWTeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MTc0LCJlbWFpbCI6ImNlbGVzdGlhbHRlc3QxQGdtYWlsLmNvbSIsInJhbmRvbV9qd3QiOiJlNXg1Q0oifQ.xc5jVAS6ZtTPrjg0LizznT0-sE9W_FkSW5s",
}
response = requests.request("PUT", url,data=data, headers=headers)
print(response.text)
Этот запрос дает мне следующий ответ:
{
"args": {},
"data": "",
"files": {},
"form": {
"lastName": "testNew"
},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Authorization": "JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MTc0LCJlbWFpbCI6ImNlbGVzdGlhbHRlc3QxQGdtYWlsLmNvbSIsInJhbmRvbV9qd3QiOiJlNXg1Q0oifQ.xc5jVAS6ZtTPrjg0LizznT0-sE9W_",
"Connection": "close",
"Content-Length": "16",
"Content-Type": "application/x-www-form-urlencoded",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.18.4"
},
"json": null,
"origin": "111.93.35.2",
"url": "http://httpbin.org/put"
}
Но когда я помещаю api url, где я хочу использовать этот запрос, api зависает и выдает ошибку плохого соединения.
API, в котором я пытаюсь обновить значения, прекрасно работает с Postman, и код, который они дают в буфере обмена, выглядит следующим образом, и он работает, как брелок, обновляет данные:
import requests
url = "http://myUrl/dashboard/editProfile"
payload = "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"lastName\"\r\n\r\nChangeLastFromCode\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--"
headers = {
'content-type': "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW",
'Authorization': "JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MTc0LCJlbWFpbCI6ImNlbGVzdGlhbHRlc3QxQGdtYWlsLmNvbSIsInJhbmRvbV9qd3QiOiJlNXg1Q0oifQ.xc5jVAS6ZtTPrjg0LizznT0-sE9W_",
}
response = requests.request("PUT", url, data=payload, headers=headers)
print(response.text)
Как мне написать запрос, не используя граничное значение, как указано в примере Почтальона выше? Это всего лишь простой запрос PUT в данных формы. Значения могут быть один или несколько. В приведенном выше примере я использую только «lastName», которое я хочу изменить через PUT>