Behandlung von Fehlern bei den Inhaltstypen
Was passiert, wenn du eine Antwort in einem bestimmten Format verlangst, aber der Server diese Anfrage nicht erfüllen kann? Angenommen, du möchtest die Antwort als XML und nicht als JSON erhalten. Wenn der Server nicht in XML antworten kann, antwortet er mit einem bestimmten Statuscode, der anzeigt, dass er nicht im angeforderten Format antworten kann. Der in diesem Fall verwendete Statuscode lautet 406 Not Acceptable
oder kurz 406
. Die Antwort des Servers enthält außerdem häufig einen accept
Header, der eine Liste aller Antwortformate enthält, mit denen er antworten kann. Hier erfährst du, mit welchen Inhaltstypen die API antworten kann.
Diese Übung ist Teil des Kurses
Einführung in APIs in Python
Anleitung zur Übung
- Füge einen
accept
Header hinzu, um eine Antwort imapplication/xml
content-type vom Server anzufordern. - Prüfe anhand des entsprechenden Statuscodes, ob der Server die Anfrage nicht akzeptiert hat.
- Druckt eine Liste der akzeptierten Inhaltstypen aus der Serverantwort aus.
Interaktive Übung zum Anfassen
Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.
# 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)