2017-11-11 10 views
0

Retrofitに少し問題があります。私はURL(そのポート番号を持つ修正IP)を呼び出すと、戻り値がありません。私のコードは動いていますが、何も起こりませんでした。 (これは、ホームオートメーションシステムになるだろう、と、このコードは私のガレージを開く必要があります。サーバがR.PI上の突堤サーブレットです)改造2.3戻り値なしのURL呼び出し

public class MainActivity extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Button garageBtn = (Button)findViewById(R.id.garageBtn); 

    Retrofit retrofit = new Retrofit.Builder() 
      .baseUrl("http://192.168.96.100:8080/") 
      .build(); 

    GarageApi service = retrofit.create(GarageApi.class); 

    garageBtn.setOnClickListener((View v) -> { 
     service.garagemove(); 
     //Log.d("Retrofit", service.garagemove().toString()); 
    }); 


}} 

public interface GarageApi { 
    @GET("garage") 
    Call<ResponseBody> garagemove(); 
} 

私の問題を解決するために助けてください。

答えて

0

retrofitを使用すると、エンキューする必要のあるインターフェイスを効果的に呼び出すことができます。 だからあなたのような何か実行する必要があります。

service.garagemove().enqueue(new Callback<ResponseBody>() { 
     @Override 
     public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) { 

     } 

     @Override 
     public void onFailure(Call<ResponseBody> call, Throwable t) { 

     } 
    }); 

をそして方法onResponseとONFAILURE(オーバーライド)を実装。

0

何も返さない(別名voidを返す)apiメソッドがある場合、内部JavaオブジェクトVoidをレトロフィットメソッドの戻り値として使用できます。

コード例:

@GET("path/to/void/api") 
Call<Void> garageMove(); 

Hereあなたが改造し、無効応答についての詳細を読むことができます。

+0

私もこれを試してみましたが、何も起こりませんでした。 –

+0

クライアントメソッドは何も返しませんので、(バックエンド)APIエンドポイントに達しているかどうかを確認する必要があります。多分問題はそこにあります。 – db80

関連する問題