Tratamiento de errores de tipo de contenido
¿Qué ocurre cuando pides una respuesta en un formato concreto pero el servidor no puede satisfacer esa petición? Digamos que quieres recibir la respuesta en XML en lugar de JSON. Si el servidor no puede responder en XML, responderá con un código de estado específico indicando que no puede responder en el formato solicitado. El código de estado utilizado en este caso es 406 Not Acceptable
o 406
abreviado. La respuesta del servidor también suele contener una cabecera accept
que incluye una lista de todos los formatos de respuesta con los que puede responder. Utilízalo para saber con qué tipos de contenido puede responder API.
Este ejercicio forma parte del curso
Introducción a APIs en Python
Instrucciones de ejercicio
- Añade una cabecera
accept
para solicitar al servidor una respuesta en el tipo de contenidoapplication/xml
. - Comprueba si el servidor no ha aceptado la solicitud utilizando el código de estado correspondiente.
- Imprime una lista de los tipos de contenido aceptados a partir de la respuesta del servidor.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
# Add a header to use in the request
headers = {____}
response = requests.get('http://localhost:3000/lyrics', headers=headers)
# Check if the server did not accept the request
if (response.____ == ____):
print('The server can not respond in XML')
# Print the accepted content types
print('These are the content types the server accepts: ' + response.____)
else:
print(response.text)