시작하기무료로 시작하기

콘텐츠 타입 오류 처리하기

특정 형식의 응답을 요청했지만 서버가 그 요청을 충족하지 못하면 어떻게 될까요? 예를 들어 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)
코드 편집 및 실행