Python REST POST с базовой аутентификацией - PullRequest
0 голосов
/ 23 сентября 2018

Я пытаюсь получить POST-запрос, работающий с Python 3, который отправит полезную нагрузку json платформе, использующей базовую аутентификацию.Я получаю ошибку статуса 405 и считаю, что это может быть связано с форматированием моей полезной нагрузки.Я изучаю Python на ходу и до сих пор не знаю, когда использовать «vs», объекты против массивов и синтаксис некоторых запросов. В процессе поиска я не смог найти аналогичные проблемы при публикации массива с базовой аутентификацией. Вот чтоУ меня на данный момент:

import requests
import json

url = 'https://sampleurl.com'
payload = [{'value': '100','utcRectime': '09/23/2018 11:59:00 PM','comment': "test",'correctionValue': '0.0','unit': 'C'}]
headers = {'content-type': 'application/json'}

r = requests.post(url, auth=('username','password'), data=json.dumps(payload), headers=headers)


print (r)

Тестирование в API swagger, CURL содержит следующее форматирование:

curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d '[{"value": "100","utcRectime": "9/23/2018 11:59:00 PM","comment": "test","correctionValue": "0.0","unit": "C"}]' 

1 Ответ

0 голосов
/ 23 сентября 2018

Не думаю, что вы хотите dump список в строку.requests превратит структуру данных Python в правильную полезную нагрузку.Библиотека requests также достаточно умна, чтобы генерировать правильные заголовки, если указать аргумент ключевого слова json.

Вы можете попробовать:

r = requests.post(url, auth=('username','password'), json=payload)

Кроме того, иногда сайты блокируют неизвестного пользователя.агенты.Вы можете сделать вид, что вы браузер, выполнив:

headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
r = requests.post(url, auth=('username','password'), json=payload, headers=headers)

HTH.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...