前提・実現したいこと
タイトルの通りRetrofitを利用してGETリクエストを行う際に配列を複数渡したいと考えています。
【Android】RetrofitのGETリクエストで配列を☆複数☆渡したいの記述を参考に実装を行ったのですが@Query(encoded = true)
をパラメータに付与しても&
や=
がエンコードされてしまい正常なURLを生成できません。
この問題を解決して正常なURLを生成する方法はあるでしょうか?
ソースコード
Retrofitのバージョンは2.5.0とJavadocがある2.3.0の両方で確認しましたが同様の結果でした。
インターフェース
Java
1public interface ApiService { 2 @GET("api") 3 Call<List<Example>> getExample(@Query(value="hoge", encoded=true) String hoge, 4 @Query(value="fuga", encoded=true) String fuga); 5}
呼び出し
Java
1Retrofit retrofit = new Retrofit.Builder() 2 .baseUrl(url) 3 .addConverterFactory(GsonConverterFactory.create()) 4 .build(); 5apiService = retrofit.create(ApiService.class); 6/* 7hogeとfugaの文字列を生成する処理 8ex) hoge = "3&hoge=4" 9fuga = "1&fuga=2" 10*/ 11Call<List<Example>> exampleCall = apiService.getExample(hoge, fuga);
最終的に生成されるURL
api/?hoge=3%26hoge%3D4&fuga=1%26fuga%3D42
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。