2015-10-01 24 views
9

Mevcut android projemde, yeni retrofit 2.0 kütüphanesi ile web sunucuma bazı veriler gönderiyorum. Sadece orada bir betik çalıştırmak istiyorum ve sunucu hiçbir şey döndürmüyor. ŞimdiYanıt olmadan Retrofit 2.0 yöntemi

@POST("persons/insert.php") 
Call<Void> insert(@Field("Name") String name); 

My sorunu sunucu şey Void dönüştürülebilir çünkü olur 200'ü döndürür rağmen öyledir, Retrofitler onFailure yönteme atlar: Ben bu yöntemle yapabilirsiniz düşündük. Peki bu yöntemi nasıl düzeltmeliyim? Bir hata oluşması durumunda sunucu 200 geri gönderir ve onFailure ise, onResponse yönteminin çağrılmasını istiyorum. Bunu nasıl başarabilirim?

cevap

19

ResponseBody'u döndürebilirsiniz.

@POST("persons/insert.php") 
Call<ResponseBody> insert(@Field("Name") String name); 

Hala onResponse ve onFailure alacak, ancak bir nesneye akışı serisini çalıştığınızda olmayacaktır.

+0

Harika teşekkürler! Problemim için mükemmel cevap. – Cilenco

2

Yanıt gövdesinden tamamen kaçınabilirsiniz. Beta2'de, yanıt gövdesini atmak ve yalnızca http durum kodunu almak için Call<Void> yapabilirsiniz.

@POST("persons/insert.php") 
Call<Void> insert(@Field("Name") String name);