콘텐츠 타입 오류 처리하기
특정 형식의 응답을 요청했지만 서버가 그 요청을 충족하지 못하면 어떻게 될까요? 예를 들어 JSON이 아닌 XML 형식으로 응답을 받고 싶다고 합시다. 서버가 XML로 응답할 수 없다면, 요청한 형식으로는 응답할 수 없음을 나타내는 특정 상태 코드로 응답해요. 이때 사용되는 상태 코드는 406 Not Acceptable, 줄여서 406입니다. 또한 서버의 응답에는 종종 accept 헤더가 포함되어 있고, 여기에는 서버가 응답할 수 있는 형식 목록이 들어 있어요. 이를 활용해 API가 지원하는 콘텐츠 타입을 확인하세요.
이 연습은 강의의 일부입니다
Python으로 배우는 API 입문
연습 안내
- 서버에
application/xml콘텐츠 타입으로의 응답을 요청하도록accept헤더를 추가하세요. - 관련 상태 코드를 사용해 서버가 요청을 수락하지 않았는지 확인하세요.
- 서버 응답에서 허용되는 콘텐츠 타입 목록을 출력하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# 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)