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?

asqueroso
fuente

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)
tkone
fuente
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

nommer
fuente