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 просмотров
Пригласить эксперта
Ответы на вопрос 2
@artinnok
бекенд-программист
hashed должен быть питоновским словарем - смотрите документацию
Ответ написан
@kgbplus
request = requests.post("http://example.ru/method/Test", data=dict(s.split("=") for s in hashed.split("&")))
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы