البرمجة

كيفية الحصول على جسم الرد لخطأ 400 Bad Request باستخدام Retrofit 2.0

للحصول على جسم الرد في حالة حدوث خطأ 400 Bad Request باستخدام Retrofit 2.0، يمكنك استخدام مكتبة OkHttp المستخدمة كعميل HTTP الخلفي لـ Retrofit. في مثالك، يتم تجاهل الرد الذي يحتوي على جسم JSON في طريقة onFailure() بسبب استثناء IOException الذي يتم طرحه. لحل هذه المشكلة والحصول على الجسم، يمكنك معالجة الرد في طريقة onResponse() باستخدام response.errorBody() للحصول على الجسم كـ ResponseBody. يمكنك ثم استخدام responseBody.string() لتحويل الجسم إلى سلسلة نصية JSON قابلة للقراءة. إليك كيفية تعديل كودك:

java
Call.enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { if (response.isSuccessful()) { // Handle successful response } else { // Handle error response try { String errorBody = response.errorBody().string(); // Now you have the JSON error body as a string // You can parse it or handle it as needed } catch (IOException e) { e.printStackTrace(); } } } @Override public void onFailure(Call call, Throwable t) { // Handle failure } });

باستخدام هذا التعديل، ستتمكن من الوصول إلى جسم الرد في حالة حدوث خطأ 400 Bad Request ومعالجته كنص JSON قابل للقراءة.

المزيد من المعلومات

إضافةً إلى الحصول على جسم الرد في حالة حدوث خطأ 400 Bad Request، يمكنك أيضًا الوصول إلى رمز الخطأ المحدد المرتبط بالرد. في مثالك، يمكنك استخدام response.code() للحصول على رمز الحالة HTTP الذي يمثل الخطأ. على سبيل المثال، إذا كنت ترغب في معالجة حالة 400 Bad Request بشكل مختلف عن الأخطاء الأخرى، يمكنك فعل ذلك على النحو التالي:

java
@Override public void onResponse(Call call, Response response) { if (response.isSuccessful()) { // Handle successful response } else { if (response.code() == 400) { // Handle 400 Bad Request error try { String errorBody = response.errorBody().string(); // Now you have the JSON error body as a string // You can parse it or handle it as needed } catch (IOException e) { e.printStackTrace(); } } else { // Handle other errors } } }

بهذه الطريقة، يمكنك تحديد نوع الخطأ باستخدام رمز الحالة HTTP ومعالجته بشكل مختلف وفقًا لاحتياجات تطبيقك.

زر الذهاب إلى الأعلى