เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การจัดการข้อผิดพลาดด้าน content-type

จะเกิดอะไรขึ้นเมื่อขอรับ response ในรูปแบบที่กำหนด แต่เซิร์ฟเวอร์ไม่สามารถตอบสนองได้? สมมติว่าต้องการรับ response เป็น XML แทน JSON หากเซิร์ฟเวอร์ไม่รองรับ XML ก็จะตอบกลับด้วย status code เฉพาะที่บ่งบอกว่าไม่สามารถตอบในรูปแบบที่ร้องขอได้ status code ที่ใช้ในกรณีนี้คือ 406 Not Acceptable หรือเรียกสั้น ๆ ว่า 406 นอกจากนี้ response จากเซิร์ฟเวอร์มักจะมี accept header ที่แสดงรายการรูปแบบ response ทั้งหมดที่รองรับ ใช้ข้อมูลนี้เพื่อเรียนรู้ว่า API สามารถตอบกลับในรูปแบบ content type ใดได้บ้าง

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Python เบื้องต้นสำหรับ API

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เพิ่ม accept header เพื่อขอรับ response ในรูปแบบ content-type application/xml จากเซิร์ฟเวอร์
  • ตรวจสอบว่าเซิร์ฟเวอร์ปฏิเสธคำขอหรือไม่ โดยใช้ status code ที่เกี่ยวข้อง
  • แสดงรายการ content type ที่เซิร์ฟเวอร์รองรับจาก response

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# 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)
แก้ไขและรันโค้ด