Contents

    Server response 415 Unsupported Media Type

    HTTP สถานะรหัส 415 (Unsupported Media Type)

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

    415 - Unsupported Media Type

    สาเหตุของการเกิดสถานะรหัส 415

    • ส่วนหัว Content-Type ไม่ถูกต้อง - API ต่าง ๆ รองรับรูปแบบข้อมูลที่แตกต่างกัน หากส่วนหัว Content-Type ที่ส่งไปไม่ตรงกับรูปแบบที่คาดหวัง เซิร์ฟเวอร์จะส่งกลับสถานะ 415
    • ไม่มีการสนับสนุนรูปแบบ - เซิร์ฟเวอร์อาจไม่รองรับรูปแบบข้อมูลที่ส่งมาจริง ๆ เช่น หาก API คาดหวัง JSON แต่ไคลเอนต์ส่ง XML
    • ข้อผิดพลาดในการเข้ารหัสข้อมูล - การเข้ารหัสข้อมูลที่ไม่ถูกต้องหรือโครงสร้างคำขอที่ผิดพลาดก็สามารถทำให้เกิดข้อผิดพลาด 415 ได้เช่นกัน

    ตัวอย่างการเกิดข้อผิดพลาด 415

    1. รูปแบบ JSON - หากไคลเอนต์ส่ง JSON แต่ตั้งค่าหัวข้อ Content-Type เป็น text/plain เซิร์ฟเวอร์จะไม่สามารถประมวลผลคำขอนี้ได้และจะส่งกลับ 415
    2. รูปแบบ XML - หากไคลเอนต์พยายามส่งข้อมูลในรูปแบบ XML แต่เซิร์ฟเวอร์คาดหวัง JSON จะส่งกลับรหัส 415
    3. ไฟล์ที่ไม่ถูกต้อง - หาก 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 เป็นขั้นตอนที่สำคัญในการหลีกเลี่ยงข้อผิดพลาดนี้