додавання заголовка до модуля запитів 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.