2015-10-01 3 views
9

現在のアンドロイドプロジェクトでは、新しいRetrofit 2.0ライブラリを使用してWebサーバーにデータを送信しています。私はそこでスクリプトを実行したいだけで、サーバは何も返しません。私はこの方法でこれを行うことができます考えた:レストロフィット2.0メソッドレスレス

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

私の問題は今、そのレトロフィットは何もVoidに変換することはできないので、たまたまサーバーが返す200もののonFailure方法にジャンプします。だから私はこの方法を修正する必要がありますか?エラーが発生した場合、サーバが200を返した場合はonResponseメソッドが呼び出され、エラーが発生した場合はonFailureメソッドが呼び出されます。それをどうすれば実現できますか?

答えて

19

ResponseBodyを返すことができます。

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

あなたはまだonResponseonFailureを取得しますが、それはオブジェクトにストリームをデシリアライズしようとしません。

+0

ありがとう!私の問題に対する完璧な答え。 – Cilenco

2

応答本体を完全に回避することができます。 ベータ2では、Call<Void>を実行して応答本文を破棄し、httpステータスコードを取得することができます。

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