Python Данные строки POST - PullRequest
       4

Python Данные строки POST

1 голос
/ 06 февраля 2020

Мне нужно опубликовать строковые данные, и я могу сделать это, используя curl, но не используя модуль запросов python.

CURL пример:

curl -XPOST "https://hostname/apisyntax?queryparams" -d  "key1=value&key2=value&key3=vlaue&key4[]=value"

Это python пример, который не работает:

data_api = '"key1='+str(value1)+'&key2='+str(value2)+'&key3='+str(value3)+'&key4[]='+str(value4)+'"'

call_api = requests.post (url, data=data_api)

Я не получаю никакой ошибки python, но целевой сервер сообщает об ошибке, что ключ4 не найден.

Пожалуйста, помогите понять, в чем проблема с кодом python.

Ответы [ 2 ]

0 голосов
/ 06 февраля 2020
data_api = '"key1='+str(value1)+'&key2='+str(value2)+'&key3='+str(value3)+'&key4[]='+str(value4)+'"'

call_api = requests.post (url, data=data_api)

Я заметил несоответствие в key4, которое доставляет вам неприятности.

Попробуйте

data_api = '"key1='+str(value1)+'&key2='+str(value2)+'&key3='+str(value3)+'&key4='+str(value4)+'"'

call_api = requests.post (url, data=data_api)

Т.е. удалите [] после key4[]

0 голосов
/ 06 февраля 2020

Отправьте параметры как json вместо data, ваш окончательный код должен выглядеть примерно так -

data_api = {'key1': str(value1), 
        'key2': str(value2), 
        'key3': str(value3), 
        'key4': [str(value4)]} 

call_api = requests.post (url, json=data_api)
...