Server response 415 Unsupported Media Type
HTTP สถานะรหัส 415 (Unsupported Media Type)
HTTP สถานะรหัส 415 เกิดขึ้นเมื่อเซิร์ฟเวอร์ไม่สามารถประมวลผลคำขอเนื่องจากประเภทสื่อที่ไม่รองรับ โดยทั่วไปแล้วสถานการณ์นี้เกิดขึ้นเมื่อไคลเอนต์พยายามส่งข้อมูลในรูปแบบที่เซิร์ฟเวอร์ไม่สามารถจัดการได้
สาเหตุของการเกิดสถานะรหัส 415
- ส่วนหัว Content-Type ไม่ถูกต้อง - API ต่าง ๆ รองรับรูปแบบข้อมูลที่แตกต่างกัน หากส่วนหัว Content-Type ที่ส่งไปไม่ตรงกับรูปแบบที่คาดหวัง เซิร์ฟเวอร์จะส่งกลับสถานะ 415
- ไม่มีการสนับสนุนรูปแบบ - เซิร์ฟเวอร์อาจไม่รองรับรูปแบบข้อมูลที่ส่งมาจริง ๆ เช่น หาก API คาดหวัง JSON แต่ไคลเอนต์ส่ง XML
- ข้อผิดพลาดในการเข้ารหัสข้อมูล - การเข้ารหัสข้อมูลที่ไม่ถูกต้องหรือโครงสร้างคำขอที่ผิดพลาดก็สามารถทำให้เกิดข้อผิดพลาด 415 ได้เช่นกัน
ตัวอย่างการเกิดข้อผิดพลาด 415
- รูปแบบ JSON - หากไคลเอนต์ส่ง JSON แต่ตั้งค่าหัวข้อ Content-Type เป็น text/plain เซิร์ฟเวอร์จะไม่สามารถประมวลผลคำขอนี้ได้และจะส่งกลับ 415
- รูปแบบ XML - หากไคลเอนต์พยายามส่งข้อมูลในรูปแบบ XML แต่เซิร์ฟเวอร์คาดหวัง JSON จะส่งกลับรหัส 415
- ไฟล์ที่ไม่ถูกต้อง - หาก API คาดหวังภาพในรูปแบบ JPEG แต่ไคลเอนต์ส่งไฟล์ PNG พร้อมกับส่วนหัวที่ไม่ถูกต้อง เซิร์ฟเวอร์จะส่งกลับ 415
การแก้ไขข้อผิดพลาด 415 ในหลายภาษาโปรแกรม
ภาษา | โค้ดตัวอย่าง |
---|---|
JavaScript (Node.js) |
const axios = require('axios'); axios.post('https://example.com/api', data, { headers: { 'Content-Type': 'application/json' } }) .then(response => { console.log(response.data); }) .catch(error => { if (error.response && error.response.status === 415) { console.error('Unsupported Media Type: ตรวจสอบหัวข้อ Content-Type'); } }); |
Python (Requests) |
import requests headers = { 'Content-Type': 'application/json' } response = requests.post('https://example.com/api', json=data, headers=headers) if response.status_code == 415: print('Unsupported Media Type: ตรวจสอบหัวข้อ Content-Type') |
Java (HttpURLConnection) |
import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; public class HttpClient { public static void main(String[] args) { try { URL url = new URL("https://example.com/api"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("POST"); connection.setRequestProperty("Content-Type", "application/json"); connection.setDoOutput(true); OutputStream os = connection.getOutputStream(); os.write(data.getBytes()); os.flush(); os.close(); if (connection.getResponseCode() == 415) { System.out.println("Unsupported Media Type: ตรวจสอบหัวข้อ Content-Type"); } } catch (Exception e) { e.printStackTrace(); } } } |
การเข้าใจสถานะรหัส 415 และสาเหตุที่เกิดขึ้นสามารถช่วยให้คุณปรับปรุงการสื่อสารระหว่างไคลเอนต์และเซิร์ฟเวอร์ได้อย่างมีประสิทธิภาพ การตรวจสอบส่วนหัว Content-Type และรูปแบบข้อมูลที่ส่งไปยัง API เป็นขั้นตอนที่สำคัญในการหลีกเลี่ยงข้อผิดพลาดนี้