dodanie nagłówka do modułu żądań Pythona

110

Wcześniej użyłem httplibmodułu do dodania nagłówka w żądaniu. Teraz próbuję tego samego z requestsmodułem.

To jest moduł żądań Pythona, którego używam: http://pypi.python.org/pypi/requests

Jak mogę dodać nagłówek do request.posti request.getpowiedzieć, że muszę dodać foobarklucz w każdym żądaniu w nagłówku.

discky
źródło

Odpowiedzi:

192

Od 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)

Musisz tylko utworzyć dyktę ze swoimi nagłówkami (pary klucz: wartość, gdzie klucz jest nazwą nagłówka, a wartością jest, cóż, wartość pary) i przekazać ten dykt do parametru headers w metodzie .getlub .post.

Więc bardziej konkretnie do twojego pytania:

headers = {'foobar': 'raboof'}
requests.get('http://himom.com', headers=headers)
tkone
źródło
2
Pomocne może być zobaczenie odpowiedzi, którą wysyłasz i / lub otrzymujesz z powrotem. Zgodnie z dokumentami Requests Advanced Usage użyj, r.headersaby uzyskać dostęp do nagłówków odesłanych przez serwer i r.request.headerswyświetlić nagłówki, które wysyłasz na serwer.
harperville
46

Możesz to również zrobić, aby ustawić nagłówek dla wszystkich przyszłych pobrań dla obiektu Session, gdzie x-test będzie we wszystkich wywołaniach 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'})

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

nommer
źródło