استجابة الخادم 415 Unsupported Media Type
رمز حالة HTTP 415 (نوع الوسائط غير مدعوم)
يظهر رمز حالة HTTP 415 عندما يرفض الخادم معالجة الطلب بسبب نوع وسائط غير مدعوم. يحدث ذلك عندما يحاول العميل إرسال بيانات بتنسيق لا يمكن للخادم معالجته. في هذه المقالة، سنستعرض بشكل دقيق أسباب ظهور هذا الرمز، وكيفية التعامل مع هذه الحالة بشكل صحيح.
أسباب ظهور رمز الحالة 415
- عنوان Content-Type غير صحيح
تدعم واجهات برمجة التطبيقات المختلفة تنسيقات بيانات مختلفة، وإذا كان عنوان
Content-Type
المرسل لا يتطابق مع التنسيق المتوقع، فإن الخادم سيعيد رمز 415. - عدم دعم التنسيق
قد لا يدعم الخادم ببساطة تنسيق البيانات المرسل. على سبيل المثال، إذا كانت واجهة برمجة التطبيقات تتوقع JSON، بينما يرسل العميل XML.
- أخطاء في ترميز البيانات
يمكن أن تؤدي الأخطاء في ترميز البيانات أو الهيكل غير الصحيح للطلب أيضًا إلى ظهور خطأ 415.
أمثلة عملية
- تنسيق JSON
مثال: يقوم العميل بإرسال JSON، ولكن يحدد عنوان
Content-Type
علىtext/plain
. لن يتمكن الخادم من معالجة هذا الطلب وسيرجع 415. - تنسيق XML
مثال: يحاول العميل إرسال بيانات بتنسيق XML، بينما يتوقع الخادم بيانات على شكل JSON. في هذه الحالة، سيتم أيضًا إرجاع الرمز 415.
- ملفات غير صالحة
مثال: إذا كانت واجهة برمجة التطبيقات تتوقع صورة بتنسيق 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('نوع الوسائط غير مدعوم: تحقق من عنوان 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('نوع الوسائط غير مدعوم: تحقق من عنوان 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("نوع الوسائط غير مدعوم: تحقق من عنوان Content-Type"); } } catch (Exception e) { e.printStackTrace(); } } } |