รหัสสถานะ 415 Unsupported Media Type คืออะไร: ปัญหาชนิดไฟล์ไม่รองรับ

INEZA Felin-Michel

INEZA Felin-Michel

14 October 2025

รหัสสถานะ 415 Unsupported Media Type คืออะไร: ปัญหาชนิดไฟล์ไม่รองรับ

Apidog สำหรับองค์กร

การติดตั้งแบบ On-Premises

SSO & RBAC

รองรับมาตรฐาน SOC 2

สำรวจ Apidog Enterprise

คุณกำลังผสานรวมกับ API ใหม่ คุณสร้างคำขอ JSON อย่างระมัดระวังด้วยข้อมูลที่ถูกต้องทั้งหมด ส่งออกไป และแทนที่จะได้รับคำตอบที่สำเร็จตามที่คาดไว้ คุณกลับได้รับข้อผิดพลาดที่น่าหงุดหงิด: 415 Unsupported Media Type คุณตรวจสอบการยืนยันตัวตน, URL ของปลายทาง, เพย์โหลดข้อมูลของคุณอีกครั้ง ทุกอย่างดูเหมือนจะถูกต้อง แล้วอะไรผิดพลาดไป?

ปัญหาน่าจะไม่ได้อยู่ที่ สิ่งที่คุณส่งไป แต่อยู่ที่ วิธีที่คุณบอกเซิร์ฟเวอร์ว่าคุณกำลังส่งอะไร รหัสสถานะที่พบบ่อยแต่สร้างความสับสนนี้เป็นเรื่องของการสื่อสารที่ผิดพลาดในรูปแบบข้อมูล

ข้อผิดพลาด 415 เป็นวิธีที่เซิร์ฟเวอร์บอกว่า "ฉันเข้าใจว่าคุณกำลังพยายามส่งข้อมูลมาให้ฉัน แต่ฉันไม่เข้าใจภาษานี้ ฉันคาดหวังให้คุณส่งมาในรูปแบบอื่นที่ฉันสามารถประมวลผลได้จริง"

หากคุณเป็นนักพัฒนาที่ทำงานกับ API ไม่ว่าจะสร้างหรือใช้งาน การทำความเข้าใจรหัสสถานะ 415 เป็นสิ่งสำคัญสำหรับการผสานรวมที่ราบรื่นและหลีกเลี่ยงการแก้ไขข้อผิดพลาดที่น่าหงุดหงิด

ในคู่มือฉบับละเอียดนี้ เราจะสำรวจว่ารหัสสถานะ 415 Unsupported Media Type หมายถึงอะไร ทำไมจึงเกิดขึ้น สถานการณ์ทั่วไป และวิธีแก้ไขหรือหลีกเลี่ยงในทางปฏิบัติ ไม่ว่าคุณจะเป็นนักพัฒนาที่จัดการกับการผสานรวม API หรืออยากรู้ว่าการสื่อสารบนเว็บทำงานอย่างไร โพสต์นี้จะช่วยให้คุณเชี่ยวชาญข้อผิดพลาด 415

💡
หากคุณต้องการให้แน่ใจว่าคำขอ API ของคุณจะไม่ล้มเหลวเนื่องจากประเภทสื่อไม่ถูกต้อง ลองใช้ Apidog วันนี้เลย ใช้งานได้ ฟรี ดาวน์โหลดง่าย ใช้งานง่าย และช่วยให้นักพัฒนาตรวจจับความไม่ตรงกันของ Content-Type ได้ทันที ด้วย Apidog คุณสามารถจำลองส่วนหัวต่างๆ รันการทดสอบอัตโนมัติ และทำงานร่วมกับทีมของคุณได้ในที่เดียว
button

เอาล่ะ มาเจาะลึกและขจัดความสับสนเกี่ยวกับ HTTP 415 ให้หมดไปกันเลย

ปัญหา: การพูดภาษาของเซิร์ฟเวอร์

ลองจินตนาการว่าคุณกำลังส่งจดหมายถึงคนที่อ่านภาษาฝรั่งเศสเท่านั้น คุณอาจเขียนจดหมายภาษาอังกฤษที่ไพเราะและมีโครงสร้างสมบูรณ์แบบ แต่ถ้าผู้รับไม่เข้าใจภาษาอังกฤษ ข้อความของคุณก็จะไร้ประโยชน์ ข้อผิดพลาด 415 คือสถานการณ์เดียวกันนี้ในรูปแบบดิจิทัล

เว็บเซิร์ฟเวอร์มักถูกสร้างขึ้นมาเพื่อทำความเข้าใจรูปแบบข้อมูลเฉพาะ พวกเขาจำเป็นต้องรู้ว่าข้อมูลที่เข้ามาเขียนด้วย "ภาษา" ใด เพื่อให้สามารถแยกวิเคราะห์และประมวลผลได้อย่างถูกต้อง ส่วนหัว Content-Type คือวิธีที่ไคลเอนต์บอกเซิร์ฟเวอร์ว่าข้อมูลอยู่ในรูปแบบใด

HTTP 415 Unsupported Media Type หมายถึงอะไรกันแน่?

รหัสสถานะ 415 Unsupported Media Type ระบุว่าเซิร์ฟเวอร์เข้าใจคำขอ แต่ปฏิเสธที่จะยอมรับ เนื่องจากรูปแบบเพย์โหลด (ประเภทสื่อ) อยู่ในรูปแบบที่ไม่รองรับโดยเซิร์ฟเวอร์สำหรับทรัพยากรที่ร้องขอ

พูดง่ายๆ คือ ไคลเอนต์ของคุณ (เช่น Postman, Apidog หรือเบราว์เซอร์ของคุณ) กำลังส่งข้อมูลในรูปแบบที่เซิร์ฟเวอร์ไม่เข้าใจหรือไม่ได้รับการกำหนดค่าให้ประมวลผล

โดยพื้นฐานแล้ว เซิร์ฟเวอร์กำลังบอกว่า: "ฉันได้รับข้อมูลของคุณแล้ว แต่ฉันไม่สามารถประมวลผลได้เพราะมันอยู่ในรูปแบบที่ฉันไม่เข้าใจหรือไม่รองรับสำหรับปลายทางนี้"

การตอบสนอง 415 ทั่วไปมีลักษณะดังนี้:

HTTP/1.1 415 Unsupported Media TypeContent-Type: application/json
{
  "error": "Unsupported Media Type",
  "message": "The request payload format is not supported.",
  "supported_types": ["application/json", "application/xml"]
}

นี่บอกคุณว่า “เฮ้! ฉันได้รับคำขอของคุณแล้ว แต่ฉันไม่สามารถประมวลผล Content-Type นี้ได้”

โดยทั่วไปแล้ว สิ่งนี้เกี่ยวข้องกับค่าของส่วนหัว Content-Type ในคำขอ HTTP ซึ่งระบุรูปแบบของข้อมูลที่กำลังส่ง (เช่น JSON, XML หรือข้อมูลฟอร์มแบบ multipart) เซิร์ฟเวอร์บางแห่งอาจให้ข้อมูลที่เป็นประโยชน์เพิ่มเติมเกี่ยวกับรูปแบบที่พวกเขารองรับ ในขณะที่บางแห่งอาจส่งข้อความแสดงข้อผิดพลาดทั่วไปมากกว่า

เจาะลึก: คำจำกัดความทางเทคนิค (สำหรับผู้ที่อยากรู้)

ตาม ข้อกำหนด HTTP/1.1 (RFC 7231) ส่วนที่ 6.5.13 กำหนดรหัสสถานะ 415 ว่า:

“รหัสสถานะ 415 (Unsupported Media Type) ระบุว่าเซิร์ฟเวอร์ต้นทางปฏิเสธที่จะให้บริการคำขอเนื่องจากเพย์โหลดอยู่ในรูปแบบที่ไม่รองรับโดยเมธอดนี้บนทรัพยากรเป้าหมาย”

จุดสำคัญที่นี่:

หัวใจสำคัญ: ส่วนหัว Content-Type

ส่วนหัว Content-Type เป็นข้อมูลสำคัญที่กำหนดว่าคุณจะได้รับข้อผิดพลาด 415 หรือการตอบสนองที่สำเร็จ ส่วนหัวนี้จะบอกเซิร์ฟเวอร์ว่าคุณกำลังส่งข้อมูลประเภทใดในเนื้อหาคำขอ

นี่คือประเภทเนื้อหาที่พบบ่อยที่สุดที่คุณจะเจอ:

ค่า Content-Type ทั่วไป:

สำหรับ JSON API:

สำหรับข้อมูลฟอร์ม:

สำหรับ XML:

สำหรับข้อความธรรมดา:

ข้อผิดพลาด 415 เกิดขึ้นได้อย่างไร: การวิเคราะห์ทีละขั้นตอน

มาดูกันว่าเกิดอะไรขึ้นเมื่อเกิดข้อผิดพลาด 415

ขั้นตอนที่ 1: ไคลเอนต์ส่งคำขอ

แอปพลิเคชันไคลเอนต์ส่งคำขอไปยังปลายทาง API ของเซิร์ฟเวอร์ ตัวอย่างเช่น สมมติว่าเรากำลังพยายามสร้างผู้ใช้ใหม่:

POST /api/users HTTP/1.1Host: api.example.comContent-Type: application/xmlContent-Length: 125
<user><name>John Doe</name><email>john@example.com</email></user>

ขั้นตอนที่ 2: เซิร์ฟเวอร์ตรวจสอบ Content-Type

เซิร์ฟเวอร์ได้รับคำขอและตรวจสอบส่วนหัว Content-Type มันเห็น application/xml และตรวจสอบการกำหนดค่าสำหรับปลายทาง /api/users

ขั้นตอนที่ 3: เซิร์ฟเวอร์ตระหนักถึงปัญหา

ปลายทาง /api/users ของเซิร์ฟเวอร์ได้รับการกำหนดค่าให้ยอมรับเฉพาะ application/json เท่านั้น มันไม่มีตัวแยกวิเคราะห์ XML สำหรับปลายทางนี้ และไม่รู้ว่าจะจัดการกับข้อมูลที่เข้ามาได้อย่างไร

ขั้นตอนที่ 4: การตอบสนอง 415

แทนที่จะพยายามประมวลผลข้อมูลที่ไม่ถูกต้อง (ซึ่งอาจนำไปสู่ข้อผิดพลาดหรือปัญหาด้านความปลอดภัย) เซิร์ฟเวอร์จะตอบกลับด้วยรหัสสถานะ 415 Unsupported Media Type

ขั้นตอนที่ 5: ไคลเอนต์ได้รับข้อผิดพลาด

แอปพลิเคชันไคลเอนต์ได้รับคำตอบ 415 และจำเป็นต้องจัดการอย่างเหมาะสม ซึ่งมักจะทำได้โดยการแก้ไขส่วนหัว Content-Type และส่งคำขอซ้ำ

สถานการณ์ทั่วไปที่คุณอาจพบข้อผิดพลาด 415

1. การอัปโหลดไฟล์ใน API

หากคุณพยายามอัปโหลดรูปภาพโดยใช้ application/json แทนที่จะเป็น multipart/form-data เซิร์ฟเวอร์จะไม่เข้าใจเนื้อหาของไฟล์

2. API ที่กำหนดเองพร้อมการตรวจสอบที่เข้มงวด

API ที่มีการตรวจสอบสคีมาอย่างเข้มงวดจะปฏิเสธคำขอใดๆ ที่ไม่ตรงกับกฎของพวกเขา

3. แอปมือถือที่ใช้ SDK ล้าสมัย

บางครั้ง SDK รุ่นเก่าจะส่งคำขอพร้อมส่วนหัวที่ล้าสมัย ซึ่ง API สมัยใหม่ไม่รองรับอีกต่อไป

4. คำขอข้ามต้นทาง (ปัญหา CORS)

การกำหนดค่า CORS บางอย่างอาจจำกัดประเภทเนื้อหาที่ยอมรับ ซึ่งทำให้เกิดการตอบสนอง 415 โดยอ้อม

บทบาทของส่วนหัว Content-Type

ส่วนหัว Content-Type ในคำขอ HTTP จะบอกเซิร์ฟเวอร์ว่าไคลเอนต์กำลังส่งข้อมูลประเภทใด

ตัวอย่างเช่น:

หากส่วนหัวนี้หายไปหรือระบุสิ่งที่ไม่สามารถจัดการได้ เซิร์ฟเวอร์มักจะแสดงการตอบสนอง 415

สถานการณ์จริงที่ทำให้เกิดข้อผิดพลาด 415

สถานการณ์ที่ 1: ส่วนหัว Content-Type หายไป

POST /api/users HTTP/1.1Host: api.example.com

{"name": "John Doe", "email": "john@example.com"}

เซิร์ฟเวอร์หลายแห่งจะปฏิเสธสิ่งนี้เนื่องจากไม่มีส่วนหัว Content-Type ที่บอกให้พวกเขาทราบว่าจะตีความข้อมูลอย่างไร

สถานการณ์ที่ 2: Content-Type ไม่ถูกต้องสำหรับข้อมูล

POST /api/users HTTP/1.1Host: api.example.comContent-Type: application/x-www-form-urlencoded

{"name": "John Doe", "email": "john@example.com"}

ส่วนหัวระบุว่าเป็นข้อมูลฟอร์ม แต่เนื้อหาเป็น JSON ความไม่ตรงกันนี้ทำให้เซิร์ฟเวอร์สับสน

สถานการณ์ที่ 3: เซิร์ฟเวอร์ไม่รองรับรูปแบบ

POST /api/users HTTP/1.1Host: api.example.comContent-Type: application/xml
<user><name>John</name></user>

เซิร์ฟเวอร์อาจรองรับเฉพาะ JSON สำหรับปลายทางนี้ แม้ว่า XML จะถูกจัดรูปแบบอย่างถูกต้องก็ตาม

การทดสอบการจัดการ Content-Type ด้วย Apidog

Apidog New UI

มาพูดถึงวิธีที่ Apidog สามารถทำให้ชีวิตของคุณง่ายขึ้นเมื่อต้องรับมือกับข้อผิดพลาดเหล่านี้ การทดสอบประเภทเนื้อหาที่แตกต่างกันและทำให้แน่ใจว่า API ของคุณจัดการได้อย่างถูกต้องคือจุดเด่นของ Apidog มันทำให้การทดสอบสถานการณ์เหล่านี้เป็นเรื่องง่ายอย่างเหลือเชื่อโดยไม่ต้องเขียนโค้ดที่ซับซ้อน

ด้วย Apidog คุณสามารถ:

  1. ตั้งค่าส่วนหัว Content-Type ได้อย่างง่ายดาย: ใช้ส่วนต่อประสานที่ใช้งานง่ายของ Apidog เพื่อเลือกจากประเภทเนื้อหาทั่วไปหรือระบุประเภทที่กำหนดเอง
  2. ทดสอบหลายรูปแบบ: ทดสอบปลายทางเดียวกันอย่างรวดเร็วด้วยประเภทเนื้อหาที่แตกต่างกัน (JSON, XML, ข้อมูลฟอร์ม) เพื่อดูว่าเซิร์ฟเวอร์ของคุณตอบสนองอย่างไร
  3. ตรวจสอบการตอบสนองข้อผิดพลาด: ตรวจสอบให้แน่ใจว่า API ของคุณส่งคืนการตอบสนอง 415 ที่เหมาะสมพร้อมข้อความแสดงข้อผิดพลาดที่เป็นประโยชน์เมื่อได้รับรูปแบบที่ไม่รองรับ
  4. ทดสอบกรณีขอบ: ทดลองกับประเภทเนื้อหาที่ผิดรูปแบบ ส่วนหัวที่หายไป หรือข้อมูลที่ไม่ตรงกัน เพื่อให้แน่ใจว่า API ของคุณจัดการได้อย่างราบรื่น
  5. ทำให้การทดสอบ Content-Type เป็นแบบอัตโนมัติ: สร้างชุดทดสอบที่ตรวจสอบโดยอัตโนมัติว่า API ของคุณยอมรับรูปแบบที่รองรับอย่างถูกต้องและปฏิเสธรูปแบบที่ไม่รองรับอย่างเหมาะสม
button

ตัวอย่างเช่น เมื่อคุณตั้งค่าคำขอ POST ใน Apidog มันจะใช้ Content-Type ที่ถูกต้องโดยอัตโนมัติตามประเภทเนื้อหาคำขอของคุณ (JSON, XML, form-data ฯลฯ)

นั่นหมายถึงความประหลาดใจที่น้อยลงและไม่มีข้อผิดพลาด 415 มาทำลายเซสชันการทดสอบของคุณอีกต่อไป การทดสอบเชิงรุกนี้สามารถช่วยประหยัดเวลาในการแก้ไขข้อผิดพลาดได้หลายชั่วโมง และทำให้ API ของคุณทำงานได้อย่างที่คาดการณ์ไว้

415 เทียบกับข้อผิดพลาด 4xx อื่นๆ: การทำความเข้าใจความแตกต่าง

สิ่งสำคัญคือต้องแยกแยะ 415 ออกจากข้อผิดพลาดไคลเอนต์อื่นๆ:

แนวทางปฏิบัติที่ดีที่สุดสำหรับการจัดการข้อผิดพลาด 415

สำหรับผู้ใช้งาน API (นักพัฒนาไคลเอนต์):

สำหรับผู้ให้บริการ API (นักพัฒนาเซิร์ฟเวอร์):

ตัวอย่างการตอบสนอง 415 ที่ออกแบบมาอย่างดี:

HTTP/1.1 415 Unsupported Media TypeContent-Type: application/json
{
  "error": "unsupported_media_type",
  "message": "This endpoint only accepts application/json payloads.",
  "supported_types": ["application/json"],
  "documentation": "<https://api.example.com/docs/content-types>"
}

ข้อผิดพลาด Content-Type ทั่วไปที่ทำให้เกิด 415

นี่คือข้อผิดพลาดบางประการที่นักพัฒนามักจะพบเจอ:

ข้อผิดพลาด คำอธิบาย ตัวอย่าง
การใช้ชื่อส่วนหัวผิด ข้อผิดพลาดในการพิมพ์หรือตัวพิมพ์เล็ก/ใหญ่ contenttype แทนที่จะเป็น Content-Type
การส่งข้อมูลฟอร์มแทน JSON เซิร์ฟเวอร์คาดหวัง JSON เท่านั้น application/x-www-form-urlencoded
การลืม charset ข้อมูลการเข้ารหัสหายไป application/json; charset=utf-8
การส่งเนื้อหาว่างเปล่า เพย์โหลดที่จำเป็นหายไป POST /api โดยไม่มีข้อมูล
การใช้ประเภทไฟล์ที่ไม่รองรับ รูปแบบการอัปโหลดผิดพลาด การอัปโหลด .exe แทนที่จะเป็น .png

สิ่งเหล่านี้ดูเล็กน้อย แต่สามารถทำให้คำขอล้มเหลวอย่างมาก

วิธีแก้ไขข้อผิดพลาด 415 ทั่วไป

หากคุณพบข้อผิดพลาด 415 นี่คือวิธีแก้ไขที่พบบ่อยที่สุด:

เพิ่มส่วนหัว Content-Type ที่หายไป:

POST /api/users HTTP/1.1Content-Type: application/json

แก้ไขส่วนหัว Content-Type:

# Before (wrong):
Content-Type: text/plain
# After (correct):
Content-Type: application/json

แปลงข้อมูลของคุณให้เป็นรูปแบบที่รองรับ:

หากเซิร์ฟเวอร์ยอมรับเฉพาะ JSON ตรวจสอบให้แน่ใจว่าคุณกำลังส่ง JSON ที่ถูกต้อง ไม่ใช่ XML หรือข้อมูลฟอร์ม

ตรวจสอบการสะกดผิด:

# Wrong:
Content-Type: application/jason

# Correct:
Content-Type: application/json

ข้อควรพิจารณาขั้นสูง

การเจรจาเนื้อหา (Content Negotiation)

API ที่ซับซ้อนบางตัวรองรับการเจรจาเนื้อหา ซึ่งไคลเอนต์สามารถระบุรูปแบบที่ยอมรับได้โดยใช้ส่วนหัว Accept:

GET /api/users/123 HTTP/1.1Accept: application/json, application/xml;q=0.9

นี่เป็นการบอกเซิร์ฟเวอร์ว่า "ฉันชอบ JSON แต่ฉันสามารถยอมรับ XML ได้หากจำเป็น"

พารามิเตอร์ Charset

สำหรับรูปแบบที่ใช้ข้อความ คุณอาจต้องระบุการเข้ารหัสอักขระ:

Content-Type: application/json; charset=utf-8

บทสรุป: ความสำคัญของการสื่อสารที่ชัดเจน

รหัสสถานะ HTTP 415 Unsupported Media Type เน้นย้ำถึงแง่มุมพื้นฐานของการสื่อสารบนเว็บ: ทั้งสองฝ่ายจำเป็นต้องตกลงกันใน "ภาษา" ที่ใช้ในการแลกเปลี่ยนข้อมูล การส่งข้อมูลที่ถูกต้องนั้นไม่เพียงพอ คุณต้องส่งในรูปแบบที่ถูกต้องและประกาศอย่างเหมาะสมว่ารูปแบบนั้นคืออะไร

HTTP 415 Unsupported Media Type เป็นส่วนสำคัญในการทำให้แน่ใจว่าเซิร์ฟเวอร์จะประมวลผลเฉพาะรูปแบบข้อมูลที่คาดหวังและเข้ากันได้เท่านั้น การจัดการส่วนหัว Content-Type อย่างถูกต้อง การปฏิบัติตามข้อกำหนด API และการทดสอบด้วยเครื่องมืออย่าง Apidog สามารถลดข้อผิดพลาดเหล่านี้ได้อย่างมาก

การทำความเข้าใจและการจัดการข้อผิดพลาด 415 อย่างเหมาะสมจะทำให้คุณเป็นผู้ใช้งาน API ที่มีประสิทธิภาพมากขึ้นและเป็นนักออกแบบ API ที่ดีขึ้น ด้วยการใส่ใจกับประเภทเนื้อหาและการสื่อสารที่ชัดเจนระหว่างไคลเอนต์และเซิร์ฟเวอร์ คุณสามารถหลีกเลี่ยงข้อผิดพลาดที่น่าหงุดหงิดเหล่านี้และสร้างการผสานรวมที่แข็งแกร่งยิ่งขึ้น โปรดจำไว้ว่า API จะทำงานได้ดีเมื่อมีการสื่อสารที่ชัดเจนระหว่างไคลเอนต์และเซิร์ฟเวอร์ หากพวกเขาสื่อสารด้วย "ภาษา" เดียวกัน (ในกรณีนี้คือประเภทสื่อ) ทุกอย่างก็จะราบรื่น

ดังนั้น ครั้งต่อไปที่คุณพบข้อผิดพลาด 415 โปรดจำไว้ว่านี่ไม่ใช่ความล้มเหลวของเซิร์ฟเวอร์ที่ซับซ้อน แต่เป็นปัญหาการสื่อสารง่ายๆ ที่มักจะแก้ไขได้ง่าย และเมื่อคุณกำลังสร้างหรือทดสอบ API การใช้เครื่องมืออย่าง Apidog จะช่วยให้คุณมั่นใจได้ว่าประเภทเนื้อหาของคุณถูกต้องเสมอ ป้องกันข้อผิดพลาดเหล่านี้ก่อนที่จะเกิดขึ้น

button

ฝึกการออกแบบ API แบบ Design-first ใน Apidog

ค้นพบวิธีที่ง่ายขึ้นในการสร้างและใช้ API