2011-12-31 6 views
35

Раньше я использовал модуль httplib для добавления заголовка в запрос. Теперь я пытаюсь сделать то же самое с модулем запроса.Добавление заголовка в модуль запроса python

Это модуль запроса питона Я использую: http://pypi.python.org/pypi/requests

Как я могу добавить заголовок к request.post и request.get говорят, что я должен добавить foobar ключ в каждом запросе в заголовке.

+0

Возможного дубликат [Использования заголовков с Python запрашивает метод прибудет библиотеки] (https://stackoverflow.com/questions/6260457/using-headers-with-the-python -requ ests-librarys-get-method) –

ответ

75

От 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) 

Вам просто нужно создать Dict с вашими заголовками (пар ключ: значение, где ключ это имя заголовка и значение, а значение пары) и передать это dict параметру заголовков в методе .get или .post.

Так более конкретно на ваш вопрос:

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

Может оказаться полезным увидеть ответ, который вы отправляете и/или получаете обратно. В соответствии с [Запросами расширенного использования документов] (http://docs.python-requests.org/en/master/user/advanced/#request-and-response-objects) используйте 'r.headers' для доступа к заголовкам сервер отправляет обратно и 'r.request.headers', чтобы просмотреть заголовки, отправляемые на сервер. – harperville

9

Вы также можете сделать это, чтобы установить заголовок для всех будущих получает для объекта Session, где х-тест будет во всех 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