Форум сайта python.su
Дело вообщем простое, нужно отправить пост запрос
Вот что получается:
Имя: My name
Email: myemail@mail.ru
Тема: Theme
Текст: Text message
Отправляется что то вроде этого:
{“activityDetails”:{“additionalInfoUrl”:null,“summary”:“<strong>Theme </strong><br>Text message”},“activityInfo”:{“fields”:},“activityLocationUrl”:"http://mnemonlk132.wixsite.com/mysite“,”activityType“:”contact/contact-form“,”contactUpdate“:{”name“:{”first“:”My“,”last“:”name“},”emails":},“createdAt”:“2017-07-19T13:48:14.361Z”}
import requests s = requests.Session() r = requests.post('http://mnemonlk132.wixsite.com/mysite', data = {'name':'My name', 'email':'Myemail@mail.ru', 'subject':'Test', 'message':'Text message'})
Офлайн
В data нужно подать строку, в которой json-данные
>>> import json >>> >>> s = json.dumps({'a': 'b', 'c': 'd'}) >>> s '{"a": "b", "c": "d"}' >>>
Офлайн
py.user.nextО, спасибо, о импроте json я как то и не думал (или не знал вообще )
В data нужно подать строку, в которой json-данные
url = 'https://api.github.com/some/endpoint' payload = {'some': 'data'} r = requests.post(url, data=json.dumps(payload))
Отредактировано Denny_Colt (Июль 21, 2017 16:03:19)
Офлайн
вообще можно сразу передать json=payload
Офлайн
Denny_ColtПримерно так, только надо все эти данные сформировать внутри функции, которая возвращает строку, готовую к отправке. А json там внутри или не json, requests не должен знать - просто строка какая-то.
Насколько я понял, в данном случае должно быть примерно так?
JOHN_16Сегодня там json, завтра там не json, лучше абстрагировать до просто строки.
вообще можно сразу передать json=payload
Офлайн
py.user.nextнууу а если там данные не конвертируемые в json - то какая разница? упадет в любом случае
Сегодня там json, завтра там не json, лучше абстрагировать до просто строки.
Офлайн
JOHN_16Тут речь про строку запроса. Если там неправильные данные, то выпадет функция, которая формирует строку для запроса, а не сам запрос. Запрос просто передаёт строку; он не знает, что в ней, его задача - передать какие-то данные определённым способом (в этом его ответственность, он отвечает за способ передачи). При любых изменениях мы его один раз написали и больше не трогаем.
нууу а если там данные не конвертируемые в json - то какая разница? упадет в любом случае
Отредактировано py.user.next (Июль 23, 2017 00:49:40)
Офлайн