2016-04-10 14 views
1

私はprobebly何か間違っているよ、 私はretrofitの使い方を理解しようとしていますので、今はただの一般的なResponseBodyを呼び出して、まだ何も解析していません。ただ単純なhttpの取得)Retrofitデータを返すことができません

しかし、私は間違って何をやっているデータを取得することはできません? >

私のレトロフィットAPI>

public interface retrofitApi { 

    String baseUrl = "http://localhost:3003/"; 

    @GET("api/radBox/getDegrees") 
    Call<ResponseBody> getCallData(); 


    class Factory { 
     private static retrofitApi service; 

     public static retrofitApi getInstance() { 
      if (service == null) { 
       Retrofit retrofit = new Retrofit.Builder() 
         .baseUrl(baseUrl) 
         .addConverterFactory(GsonConverterFactory.create()) 
         .build(); 

       service = retrofit.create(retrofitApi.class); 
       return service; 
      } else { 
       return service; 
      } 

     } 
    } 


    } 

と私のメインの活動でi>は

retrofitApi.Factory.getInstance().getCallData().enqueue(new Callback<ResponseBody>() { 
     @Override 
     public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) { 

      Log.d("myLogs", "log: " + response); 

     } 

     @Override 
     public void onFailure(Call<ResponseBody> call, Throwable t) { 
      Log.d("myLogs", "failed to Retrive Data"); 


} 
     }); 
+0

あなたはマニフェストでインターネット許可を持っていますか – Blackbelt

+0

はいオフコース>

+0

Retrofitのバージョンは何ですか? –

答えて

1

のため正常に動作します。携帯電話を使用して電話機の3003ポートに接続しているようです。ローカルホストとサーバーIPを交換してください。

レトロフィットプロジェクトでコードをすべてコピーして、URLを交換すると、すべてがうまくいきます。つまり、レトロフィットコードに問題はありません。

+0

thnx!それを外部のサーバーに変更して動作させました。 –

0

てみ使用を置く代わりに、サーバから返されなければならない(私のためにそれがWeatherModel)モデルをResponseBody。この

String baseUrl = "http://api.openweathermap.org/"; 

@GET("data/2.5/weather") 
Call<WeatherModel> getCallData(@Query("q") String q, @Query("lang") String lang, 
           @Query("appid") String appid); 

同様 とそれはだ、この

retrofitApi.Factory.getInstance() 
      .getCallData("Taganrog,ru", "ru", "bde41abf61e82b6209a544a5ea2ddb76") 
      .enqueue(new Callback<WeatherModel>() { 
     @Override 
     public void onResponse(Call<WeatherModel> call, Response<WeatherModel> response) { 
      Log.d("myLogs", "log: " + response); 
     } 

     @Override 
     public void onFailure(Call<WeatherModel> call, Throwable t) { 
      Log.d("myLogs", "log: " + "failed to Retrive Data"); 
     } 
    }); 

ようMainActivityに入れて、私はあなたの問題は "localhost" を使用することによって引き起こされていると思う私

関連する問題