Я получаю разные результаты при вызове из Postman и из скрипта Python

#python #json #python-requests #postman

#python #json #python-запросы #postman

Вопрос:

Я пытаюсь вызвать веб-сервис. Я получаю разные результаты при вызове из Postman и из скрипта Python.

Вот скрипт python:

 url = 'https://api.dinero.dk/v1/257403/contacts'
payload="{rn'Name': 'Lars5',rn'Street': 'Præsteager 5',rn'ZipCode': '8200',rn'City': 'Aarhus N',rn'CountryKey': 'DK',rn'Phone': ' 45 12 34 56 78',rn'Email': 'test1@test.com'rn}"
headers = {'Content-Type': 'application/json','Authorization': 'Bearer '   token}
response = requests.request('POST', url, headers=headers, data=payload)
 

Он возвращает статус 500

Если я сделаю то же самое в Postman:

введите описание изображения здесь

введите описание изображения здесь

Затем я получаю статус 201.

В чем разница?

Комментарии:

1. Для начала у вас есть 13 заголовков в postman, но 2 в запросе Python

2. Вы можете сгенерировать код Python из запроса в postman. Он будет использоваться urllib , но это лучшее место для начала, чем 2 плохо обрезанных скриншота

3. Извините, я должен был ответить на это. Код python берется из генератора кода postman.

Ответ №1:

в postman у вас неправильный формат json, вы должны использовать двойные кавычки вместо одинарных кавычек для json , в json нет одинарных кавычек, а в postman он выделен правильно с синтаксической ошибкой.

Вы выбрали json из выпадающего списка raw body?

замените одинарные кавычки двойными кавычками для тела, что устранит половину проблем