Deissh
@Deissh
I like Python, Node.JS, Go, pain, bugs and my cat.

Отправка form-data через Requests?

Привет,
Есть API (закрытый) и нужно сделать PATCH запрос с form-data, как максимально безболезненно можно это сделать?

P.S. Гугл не помог
P.S.S Пытался и через data
И вот так(через postman сгенерировано)

def updateNode(self, id, name, data):
payload = "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"" + str(name) + "\"\r\n\r\n" + str(data) + "\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--"
# отправка запроса
req = requests.patch('http://' + config['server']['api'] + '/api/nodes/' + id, data=payload, auth=(self.mail, md5(self.psw)))
gen_log.info(req.text)
if req.status_code == 200:
return req.json(), 1
else:
return "", 0
  • Вопрос задан
  • 422 просмотра
Решения вопроса 1
Deissh
@Deissh Автор вопроса
I like Python, Node.JS, Go, pain, bugs and my cat.
Пока сам дописал до такого вида, вроде работает.
payload = '------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name="properties"\r\n\r\n' + str(data).replace('\'', '"') + '\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--'
headers = {
    'content-type': "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW",
    'Content-Type': "application/x-www-form-urlencoded",
    'Cache-Control': "no-cache"
}

req = requests.patch('http://' + config['server']['api'] + '/api/nodes/' + id, data=payload, headers=headers, auth=(self.mail, md5(self.psw)))


Если будет лучшие решение изменю.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы