Я работаю с RESTful API моей компании для запроса внутреннего сервера. Мои запросы нормально работают при отправке из браузера, но я блокируюсь при работе с python requests
или с почтальоном. Я надеюсь:
- Точно скопировать исходный запрос API (с заголовками и авторизацией), который я выполнил с помощью Chrome в моем скрипте python.
- Если это все еще заблокирован, диагностируйте барьер, чтобы сообщить об этом нашему ИТ-руководителю (который никогда не обращался к API через что-либо, кроме браузера, и не хочет тратить время на решение этой проблемы).
Ввод для Chrome просто: https://<company-address>/<endpoint>
Когда я ввожу это в python:
import requests
r = requests.get(url=`https://<company-address>/<endpoint>`, verify=False, timeout=100)
print(r.status_code)
try:
print(r.json())
except:
print(r.raise_for_status())
Получает трассировку:
Traceback (most recent call last):
File "etapro_swagger.py", line 41, in <module>
main()
File "etapro_swagger.py", line 37, in main
print(r.raise_for_status())
File "C:\ProgramData\Anaconda3\lib\site-packages\requests\models.py", line 940, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: https://<company-address>/<endpoint>
Я попытался поместить свои глобальные учетные данные в заголовок с помощью headers={'username':'<user.name>', 'password': '<password>'
, но все еще не повезло.
В Chrome я пошел на Inspect -> Network -> Headers
, чтобы проверить успешный запрос, но не знаю, как проверить, какие именно c заголовки должны быть введены в python или как это сделать.
Спасибо, и я рад предоставить больше информации по мере необходимости.