2016-08-03 16 views
0

私は改造ライブラリを使用して簡単な天気アプリを作ろうとしています。私は市の名前を動的にしたい。改造を使用してURLに動的値を渡す

完全なURLを:これは私がこれまでに行ったことある

http://api.openweathermap.org/data/2.5/forecast/daily?q=dhaka&cnt=7&appid=1111 

ベースURL:

http://api.openweathermap.org/ 
主な活動で

LinkedHashMap<String,String>data=new LinkedHashMap<>(); 
    data.put("q",targetCity); 
    data.put("cnt",Integer.toString(7)); 
    data.put("appid",getString(R.string.api_key)); 
    Call<WeatherResponse>weatherResponseCall=weatherServiceApi.getAllWeatherReport(data); 

と私のAPIインタフェースで:

@GET("data/2.5/forecast/daily?") 
Call<WeatherResponse>getAllWeatherReport(@QueryMap LinkedHashMap<String,String>data); 

私はエラーも応答データも取得していません。 助けてください。

+0

それはあなたを助けている場合、あなたが私の答えを受け入れることはできますか?どうも :) – Jaythaking

答えて

0

あなたは私があなただったら、私はデータが返さ取得する okhttp からResponseBodyを使用しようとするだろう...

WeatherResponse response = call.execute().body(); 

をコール機能を実行していません。 response.string()を使用すると、リクエストから取得された内容を確認できます。

それとも、あなたのレトロフィットオブジェクトを構築するときに、あなたがこのインターセプタを追加する必要があり、各リクエスト/レスポンスの身体データをログに記録する:

OkHttpClient client = httpClient.addInterceptor(interceptor.setLevel(HttpLoggingInterceptor.Level.BODY)) 
     .build(); 
Retrofit retrofit = builder.client(client).build(); 
return retrofit.create(serviceClass); 
関連する問題