2017-01-29 2 views
0

Я имею дело с этой небольшой ошибкой, но я не могу получить решение. Я аутентифицируюсь на странице, и я открыл инструмент проверки «проверка/сеть», чтобы узнать, как называется веб-служба и как. Я узнал это используется:Ошибка 500 отправка запроса python как chrome

enter image description here

Я цензуре конфиденциальных данных на Сопутствующие сайте. Итак, я должен выполнить этот же запрос с использованием python, но я всегда получаю ошибку 500, и журнал на стороне сервера не показывает полезную информацию (только java traceback).

Это код запроса

response = requests.post(url,data = 'username=XXXXX&password=XXXXXXX') 

URL имеет ту же строку, что вы видите на картинке в разделе «Общие/Request URL» ярлык. Данные имеют ту же строку, что и на изображении в разделе «Данные формы».

Это выглядит очень простой запрос, но я не могу заставить его работать :(.

С наилучшими пожеланиями

+0

[запрос документации] (http://docs.python-requests.org/en/master/user/quickstart/#make-a-request) содержит несколько примеров того, как сделать запрос, который поможет вам. – trixn

+0

Здравствуйте @trixn, я уже прочитал, что документация была, я не нашел ничего полезного :( – Nico

ответ

0

Если вы хотите, чтобы ваши requestвыглядит как исходя из Chrome, кроме отправки правильно data вам нужно .. указать заголовки, а также причины вы получили 500 ошибки, вероятно, там уже некоторые настройки на вашей стороне серверов не позволяя трафик от «не-браузеров»

так что в вашем случае, вам нужно добавить headers:

headers = {'Accept': 'application/json, text/plain, */*', 
      'Accept-Encoding': gzip, deflate, 
      ...... # more 
      'User-Agent': 'Mozilla/5.0 XXXXX...' # this line tells the server what browser/agent is used for this request 
      } 

response = requests.post(url,data = 'username=XXXXX&password=XXXXXXX', headers=headers) 

P.S. Если вам интересно, по умолчанию заголовки из requests являются:

>>> import requests 
>>> session = requests.Session() 
>>> session.headers 
{'Connection': 'keep-alive', 'Accept-Encoding': 'gzip, deflate', 
'Accept': '*/*', 'User-Agent': 'python-requests/2.13.0'} 

Как вы можете видеть по умолчанию User-Agent является python-requests/2.13.0, а некоторые сайты делают блокировать такой трафик.