2015-12-07 16 views
11

Web sunucumda bir POST İsteği yapmak için Retrofit kullanıyorum. Ancak, yanıt durumu 422 (unprocessable entity) olduğunda yanıt gövdesini alamıyorum gibi görünmüyor. Yanıt gövdesi her zaman null'dur.Güçlendirme 2 - Yanıt durumu boş olduğunda yanıt gövdesi 422 (işlenemeyen varlık)

Yanlış bir şey yapıp yapmadığımı veya bunun için bir çözüm olup olmadığını bilmek istiyorum. Çünkü aynı jsonu Postman numaralı istekte kullanıyorum ve normal olarak gövdeyi döndürüyor.

Bu

yöntemdir:

@Headers("Content-Type: application/vnd.api+json") 
@POST("my_endpoint") 
Call<JsonObject> postEntry(@Header("Authorization") String authorization, @Body JsonObject json); 

vücut JSONObject nesnesi, ben belgeleri gibi seri değilim demek. Ama bence sorun bu değil.

Herhangi bir yardım için teşekkür ederiz, teşekkürler.

+0

bakmak gelişmiş ?. Android'de mi harita yaptınız? –

+0

@DeividiCavarzan Evet, soruyu söylediğim gibi, Postman'ı istekte bulunduğumda, vücudu mükemmel bir şekilde geri gönderir. Her iki yerde de aynı json nesnesini kullanıyorum. –

+0

@DeividiCavarzan Ve haritalama hakkında, evet yaptım. Aslında, response.body() == null' ile birlikte Callback'de 'onResponse (Response yanıtı, Retrofit güçlendirmesi) işlevini yürütür. –

cevap

9

Varsayılan olarak, sunucunuz response.body() hata kodunu döndürdüğünde, her zaman null olur. Aradığınız ürün response.errorBody(). Yaygın bir yaklaşım böyle bir şey olurdu:

@Override 
    public void onResponse(Response<JsonObject> response, Retrofit retrofit) 
    { 
     if (response.isSuccess()) 
     { 
      response.body(); // do something with that 
     } 
     else 
     { 
      response.errorBody(); // do something with that 
     } 
    } 

Bir şeye ihtiyacın olursa

gerçekten API `422` hataları bazı vücudu dönüyor Interceptors ve how to use them

+1

ile karşılaştırın Teşekkürler .. ama benim errorBody() de her zaman null .. Güçlendirme olmadan çalışmayı başardı. Size ödül verdim çünkü –

+0

Ty. Önleme aracıyla kaputun altında neler olup bittiğini inceleyebilir, ham talebi ve cevabı görebilirsiniz. Her neyse bir yol bulmana sevindim :) – tochkov

İlgili konular