додавання заголовка до модуля запитів python


109

Раніше я використовував httplibмодуль для додавання заголовка в запит. Зараз я пробую те ж саме з requestsмодулем.

Це модуль запиту python, який я використовую: http://pypi.python.org/pypi/requests

Як я можу додати заголовок до request.postі request.getсказати, що я повинен додати foobarключ до кожного запиту в заголовку.


Відповіді:


189

З http://docs.python-requests.org/en/latest/user/quickstart/

url = 'https://api.github.com/some/endpoint'
payload = {'some': 'data'}
headers = {'content-type': 'application/json'}

r = requests.post(url, data=json.dumps(payload), headers=headers)

Вам просто потрібно створити дикт із заголовками (ключ: пара значень, де ключовим є ім'я заголовка, а значення - ну, значення пари) та передати цей диктат параметру заголовків на .getабо .postметоді.

Отже, більш конкретно для вашого питання:

headers = {'foobar': 'raboof'}
requests.get('http://himom.com', headers=headers)

2
Можливо, буде корисно побачити відповідь, яку ви надсилаєте та / або отримуєте назад. Відповідно до запитів Документи розширеного використання , використовуйте r.headersдля доступу до заголовків, які сервер надсилає назад, та r.request.headersдля перегляду заголовків, які ви надсилаєте на сервер.
— harperville

45

Ви також можете зробити це, щоб встановити заголовок на всі майбутні отримані об’єкти Session, де x-test буде знаходитись у всіх викликах s.get ():

s = requests.Session()
s.auth = ('user', 'pass')
s.headers.update({'x-test': 'true'})

# both 'x-test' and 'x-test2' are sent
s.get('http://httpbin.org/headers', headers={'x-test2': 'true'})

від: http://docs.python-requests.org/en/latest/user/advanced/#session-objects

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.