2011-12-31 13 views
35

In precedenza ho utilizzato il modulo httplib per aggiungere l'intestazione nella richiesta. Ora sto provando la stessa cosa con il modulo di richiesta.aggiunta dell'intestazione al modulo di richiesta python

Questo è il modulo di richiesta python che sto usando: http://pypi.python.org/pypi/requests

Come posso aggiungere un'intestazione al request.post e request.get dire che devo aggiungere foobar chiave in ogni richiesta di intestazione.

+0

Eventuali duplicati di [Uso di intestazioni con Python chiede metodo get della libreria] (https://stackoverflow.com/questions/6260457/using-headers-with-the-python -requ ests-librarys-get-method) –

risposta

75

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

Hai solo bisogno di creare un dict con le intestazioni (coppie chiave: valore in cui la chiave è il nome dell'intestazione e il valore è, beh, il valore della coppia) e passare tale dict al parametro headers nel metodo .get o .post.

Quindi più specifica alla tua domanda:

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

Potrebbe essere utile vedere la risposta che invii e/o ricevi indietro. Secondo [Requests Advanced Usage docs] (http://docs.python-requests.org/en/master/user/advanced/#request-and-response-objects), utilizzare 'r.headers' per accedere alle intestazioni il server rinvia e 'r.request.headers' per visualizzare le intestazioni che si inviano al server. – harperville

9

si può anche fare questo per impostare un colpo di testa per tutti i futuri ottiene per l'oggetto Session, dove x-test sarà in tutta s.get() le chiamate :

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'}) 

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

Problemi correlati