Задать вопрос
Chronosms
@Chronosms
Программист-ботовод

Requests: HTTP для людей не может отправить POST?

Здравствуйте. Появилась нужда через Python отправить запрос на API сервер с действующей технологией шифрования XOR. Оригинал функции на PHP, и выглядит он так:
$myCurl = curl_init();
curl_setopt_array($myCurl, array(
    CURLOPT_URL => 'http://example.ru/method/Test',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => $hashed,
));
$response = curl_exec($myCurl);
curl_close($myCurl);

$hashed - зашифрованное JSON послание для API сервера. Оно передано в форме строки (не словарь и не массив, строка)
Я пытаюсь то же самое проделать на Python: (requests библотека)
request = requests.post("http://example.ru/method/Test", data=hashed)
print(request.text)

Результат - пустая utf-8 строка. Если POST data не передаётся - возвращает JSON с описанием ошибки, что мы не передаём нужного.
Подскажите, пожалуйста, правильно ли я передаю строку? Я понятия не имею, как передать этот параметр.
  • Вопрос задан
  • 476 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@artinnok
бекенд-программист
hashed должен быть питоновским словарем - смотрите документацию
Ответ написан
@kgbplus
request = requests.post("http://example.ru/method/Test", data=dict(s.split("=") for s in hashed.split("&")))
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
от 200 000 до 300 000 ₽
Greenway Global Новосибирск
от 150 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
02 февр. 2025, в 19:21
500 руб./за проект
02 февр. 2025, в 19:02
50000 руб./за проект
02 февр. 2025, в 18:10
3000 руб./за проект