2017-08-22 7 views
0

をGET:レトロフィット - 峠のURL値を動的に - 私は、例えばURLを持っている方法

ここ

https://vpic.nhtsa.dot.gov/api/vehicles/DecodeVinValues/KMHDC8AEXAU084769?format=JSON

私は動的に

Retrofit2でそれを行う方法をKMHDC8AEXAU084769?format=JSONこの部分を変更したいです。

私は次のように試してみました:唯一のPOSTのためではないGETのためにサポートしている

@FormUrlEncoded 
    @GET("{input}") 
    Call<Result> getVin(@Path("input") String input, @Field("format") String format); 

しかし@FormUrlEncoded

これは私がそれを呼び出しています方法です:

ApiInterface apiService = ApiClient.getClient().create(ApiInterface.class); 

     Call<Result> call = apiService.getVin(vin, "JSON"); 
     call.enqueue(new Callback<Result>() { 
      @Override 
      public void onResponse(Call<Result> call, Response<Result> response) { 
       Result result = response.body(); 

       Log.e("Result: ", "" + response.body()); 

       Gson gson = new Gson(); 
       String json = gson.toJson(result); 

       responseTV.setText("" + json); 
      } 

      @Override 
      public void onFailure(Call<Result> call, Throwable t) { 
       // Log error here since request failed 
       Log.e("MainActivity", t.toString()); 
       Toast.makeText(MainActivity.this, "Try later", Toast.LENGTH_SHORT).show(); 
      } 
     }); 

答えて

2

はこれを試してみてください:

@GET("/api/vehicles/DecodeVinValues/{input}") 
Call<Result> getVin(@Path("input") String input, @Query("format") String format); 

@FormUrlEncodedと@Field注釈は、POSTリクエストのためのものです。

@GETアノテーションのパラメータの現在の値は、使用しているbaseUrlの値によって異なる場合があります。

1

これは、ドキュメントに記載されている....

URL操作

リクエストURLが代替ブロック及び方法に パラメータを使用して動的に更新することができます。置換ブロックは、{と}で囲まれた英数字の 文字列です。対応するパラメータは、同じ文字列を使用して@Pathでアノテートされた である必要があります。

クエリパラメータも追加できます。

@GET( "グループ/ {id} /ユーザー")呼び出し> groupList(@Path( "id")int groupId、@Query( "sort")文字列ソート);

複合クエリパラメータ の組み合わせでは、マップを使用できます。

@GET( "group/{id}/users")コール> groupList(@Path( "id")int groupId、@QueryMapマップオプション);これはこのようなもので動作するはずです、ご希望のURL構造については

@GET("{id}") 
Call<List<User>> groupList(@Path("id") int id, @Query("format") String format); 

http://square.github.io/retrofit/

+0

しようとしたが、それはあなたがGETアノテーションにURL構造を適応させる必要があります。もちろん、 –

+0

を働いていないしてくれてありがとうあなたの目的のために –

関連する問題