Проблема с Python POST-запросом к API - PullRequest
0 голосов
/ 25 марта 2020

Я делаю почтовый запрос к какой-то конечной точке, но всегда получаю 404, когда делаю это из python, но когда я делаю это с CURL, все работает. Вот мой python код:

import requests 

def send_request(endpoint):

        api_keys = {'Api-Key': API_KEY,
                    'Api-Username': API_USERNAME}

        headers = {'content-type': 'multipart/form-data'}
        request = requests.post(url = endpoint, data = api_keys, headers = headers)
        print("STATUS CODE: %s" % request.status_code)

Спасибо за помощь!

Ответы [ 2 ]

0 голосов
/ 30 марта 2020

Мне удалось получить 200 со следующим кодом:

def send_request(endpoint):

    headers = {'Content-Type': 'multipart/form-data', 'Api-Key': API_KEY, 'Api-Username': API_USERNAME}
    request = requests.post(url = endpoint, headers = headers)
    print("Request Status Code: {}".format(request.status_code))

    response = json.loads(request.text)

    return response_text

Все, что нужно было отправлять в заголовках

0 голосов
/ 25 марта 2020

Выполнить

nc -lp 8080 (Linux) или nc -l 8080 (macOS)

, а затем сделать запрос с помощью curl на http://localhost: 8080 и обратите внимание на заголовки. Повторите приведенную выше команду еще раз и на этот раз сделайте запрос, используя Python. Снова обратите внимание на заголовки и сравните их с теми, которые вы получили при выполнении запроса с помощью curl. Они одинаковые?

Возможно, User-Agent отсутствует. Обязательно добавьте отсутствующие заголовки в Python.

...