Los encabezados HTTP permiten que el cliente y el servidor pasen información adicional con una solicitud o respuesta HTTP. Todos los encabezados no distinguen entre mayúsculas y minúsculas, los campos de los encabezados están separados por dos puntos, pares clave-valor en formato de string de texto claro.
Solicitud con encabezados
Las requests no cambian su comportamiento en absoluto según los encabezados que se especifiquen. Los encabezados simplemente se pasan a la solicitud final. Todos los valores de encabezado deben ser una string, una string de bytes o Unicode. Si bien está permitido, se recomienda evitar pasar valores de encabezado Unicode. Podemos realizar requests con los encabezados que especificamos y al usar el atributo de encabezados podemos informar al servidor con información adicional sobre la solicitud.
Los encabezados pueden ser diccionarios de Python como {«Nombre del encabezado»: «Valor del encabezado»}
El encabezado de autenticación le dice al servidor quién es usted. Por lo general, podemos enviar las credenciales de autenticación a través del encabezado de Autorización para realizar una solicitud autenticada.
Ejemplo:
Encabezados = { «Autorización»: «nuestro_único_secreto_token»}
respuesta = solicitud.post(“https://example.com/get-my-account-detail”, headers=Headers)
Solicitud con cuerpo
Las requests POST pasan sus datos a través del cuerpo del mensaje. La carga útil se establecerá en el parámetro de datos . El parámetro de datos toma un diccionario, una lista de tuplas, bytes o un objeto similar a un archivo. Deberá adaptar los datos que envía en el cuerpo de su solicitud a la URL especificada.
Sintaxis:
request.post(url, data={key: value}, json={key: value}, headers={key:value}, args) *(datos, json, parámetros de encabezados son opcionales).
A continuación se presentan algunas implementaciones para ayudar a comprender mejor el concepto.
Ejemplo 1: envío de requests con datos como carga útil
Python3
import requests url = "https://httpbin.org/post" data = { "id": 1001, "name": "geek", "passion": "coding", } response = requests.post(url, json=data) print("Status Code", response.status_code) print("JSON Response ", response.json())
Producción:
Ejemplo 2: envío de requests con datos y encabezados JSON
Python
import requests import json url = "https://httpbin.org/post" headers = {"Content-Type": "application/json; charset=utf-8"} data = { "id": 1001, "name": "geek", "passion": "coding", } response = requests.post(url, headers=headers, json=data) print("Status Code", response.status_code) print("JSON Response ", response.json())
Producción: