2011-12-31 12 views
35

Wcześniej użyłem modułu httplib do dodania nagłówka w żądaniu. Teraz próbuję to samo z modułem żądania.dodanie nagłówka do modułu żądania python

Jest to moduł prośba pyton Używam: http://pypi.python.org/pypi/requests

Jak mogę dodać nagłówek do request.post i request.get powiedzieć muszę dodać foobar klucz w każdym żądaniu w cel.

+0

Możliwy duplikat [Korzystanie z nagłówków Python żąda biblioteki get metoda] (https://stackoverflow.com/questions/6260457/using-headers-with-the-python -requ ests-librarys-get-method) –

Odpowiedz

75

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) 

Wystarczy utworzyć dict z nagłówków (klucz: par wartości, gdzie kluczem jest nazwa nagłówka i wartość jest dobrze, wartość tej pary) i przekazać ten dict do parametru nagłówków w metodzie .get lub .post.

więc dokładniej na pytanie:

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

Pomocne może być zobaczenie odpowiedzi, którą wyślesz i/lub otrzymasz z powrotem. Zgodnie z dokumentami [Requests Advanced Usage] (http://docs.python-requests.org/en/master/user/advanced/#request-and-response-objects) użyj 'r.headers', aby uzyskać dostęp do nagłówków serwer odsyła i 'r.request.headers' wyświetla nagłówki wysyłane do serwera. – harperville

9

Można też to zrobić, aby ustawić nagłówek dla wszystkich przyszłych trafia do obiektu Session, gdzie x-test będzie we wszystkich s.get() wywołuje :

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

Powiązane problemy