Gestire gli errori dei content-type
Cosa succede quando chiedi una risposta in un formato specifico ma il server non può soddisfare la richiesta? Per esempio, vuoi ricevere la risposta in XML invece che in JSON. Se il server non può rispondere in XML, restituirà un codice di stato specifico che indica che non può rispondere nel formato richiesto. Il codice di stato usato in questo caso è 406 Not Acceptable, o in breve 406. La risposta del server spesso contiene anche un'intestazione accept che include l'elenco di tutti i formati di risposta con cui può rispondere. Usala per scoprire con quali content type l'API può rispondere.
Questo esercizio fa parte del corso
Introduzione alle API in Python
Istruzioni dell'esercizio
- Aggiungi un'intestazione
acceptper richiedere al server una risposta con content-typeapplication/xml. - Verifica se il server non ha accettato la richiesta usando il relativo codice di stato.
- Stampa l'elenco dei content type accettati dalla risposta del server.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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)