application/x-www-form-urlencoded; charset=UTF-8' -H 'Accept: */*' --data 'email=mail%40example.com&ch=4&is_flush=0&phone=%2B79123456789&text=test+message' --digest --user user:password
он работает из консоли нормально. Переписал в requests:
import requests
from requests.auth import HTTPDigestAuth
headers = {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'Accept': '*/*',
}
data = {
'email': 'mail@example.com',
'ch': '4',
'is_flush': '0',
'phone': '+79123456789',
'text': 'test message'
}
response = requests.post('http://192.168.1.100/sendsms', headers=headers, data=data, auth=HTTPDigestAuth('user', 'password'))
вылетает 104. Лог cURL --verbose: https://pastebin.com/5zPXANPr
Что я делаю не так?
В логе написано, что HTTP/1.1 200 OK. Где там 104
Разобрался. Короче requests в наглую ломится сразу авторизовываться, вот сервер его и шлёт к собакам. cURL делает интеллигентнее: сначала постучится, если закрыто, попробует представиться и передать записку. Наверное, попробую тупо шелл прикрутить, ибо в дебаге ещё выяснилось, что requests кириллические строки в запрос не вставляет вообще никак, даже urlencode над ними не делает.
Обсуждают сегодня