Usar encabezados con el método get de la biblioteca de solicitudes Python

Respuestas:

281

De acuerdo con la API , todos los encabezados se pueden pasar usando request.get:

r=requests.get("http://www.example.com/", headers={"content-type":"text"})
cwallenpoole
fuente
14
Puede verificar el encabezado de solicitud http enviado haciendo: print (r.request.headers)
no
2
@Breedly Lugar correcto, momento adecuado. Historia de mi vida: notable cantidad de buena suerte combinada con un montón de trabajo duro.
cwallenpoole
36

Parece bastante sencillo, de acuerdo con los documentos en la página que ha vinculado (énfasis mío).

request.get (url, params = None, headers = None, cookies = None, auth = None, timeout = None)

Envía una solicitud GET. Devuelve Responseobjeto.

Parámetros:

  • url: URL para el nuevo Requestobjeto.
  • params - (opcional) Diccionario de parámetros GET para enviar con el Request.
  • encabezados - (opcional) Diccionario de encabezados HTTP para enviar con el Request.
  • cookies: (opcional) objeto CookieJar para enviar con el Request.
  • auth: (opcional) AuthObject para habilitar la autenticación básica HTTP.
  • tiempo de espera: (opcional) flotante que describe el tiempo de espera de la solicitud.
John Flatness
fuente
3
Gracias, pero realmente no sé mucho sobre la sintaxis de Python. Solo un poco de aprendizaje. La próxima vez finja que no sé nada y leí la API como el tipo anterior.
Breedly
2
Hay un error tipográfico en el enlace de documentación o el enlace está muerto, aquí está el nuevo docs.python-requests.org/en/latest/api
Mutante
28

Esta respuesta me enseñó que puedes configurar encabezados para una sesión completa:

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

Bonificación: las sesiones también manejan cookies.

Cees Timmerman
fuente