Gestion des erreurs de type de contenu
Que se passe-t-il lorsque vous demandez une réponse dans un format spécifique mais que le serveur ne peut satisfaire cette demande ? Supposons que vous souhaitiez recevoir la réponse en XML plutôt qu'en JSON. Si le serveur ne peut pas répondre en XML, il répondra avec un code d'état spécifique indiquant qu'il ne peut pas répondre dans le format demandé. Le code d'état utilisé dans ce cas est 406 Not Acceptable
ou 406
en abrégé. La réponse du serveur contient aussi souvent un en-tête accept
qui comprend une liste de tous les formats de réponse possibles. Utilisez cette option pour connaître les types de contenu auxquels l'API peut répondre.
Cet exercice fait partie du cours
Introduction aux API en Python
Instructions
- Ajoutez un en-tête
accept
pour demander au serveur une réponse dans le type de contenuapplication/xml
. - Vérifiez si le serveur n'a pas accepté la demande en utilisant le code d'état correspondant.
- Imprime une liste des types de contenu acceptés dans la réponse du serveur.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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)