agregar encabezado al módulo de solicitudes de Python


108

Anteriormente usé el httplibmódulo para agregar un encabezado en la solicitud. Ahora estoy intentando lo mismo con el requestsmódulo.

Este es el módulo de solicitud de Python que estoy usando: http://pypi.python.org/pypi/requests

¿Cómo puedo agregar un encabezado al request.posty request.getdecir que tengo que agregar una foobarclave en cada solicitud en el encabezado?


Respuestas:


188

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

Solo necesita crear un dictado con sus encabezados (pares clave: valor donde la clave es el nombre del encabezado y el valor es, bueno, el valor del par) y pasar ese dictado al parámetro encabezados en el método .geto .post.

Así que más específico para tu pregunta:

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

2
Puede ser útil ver la respuesta que envía y / o recibe. De acuerdo con los documentos de Requests Advanced Usage , utilícelo r.headerspara acceder a los encabezados que el servidor envía y r.request.headerspara ver los encabezados que está enviando al servidor.
harperville

44

También puede hacer esto para establecer un encabezado para todas las futuras get para el objeto Session, donde x-test estará en todas las llamadas a 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'})

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.