改进错误URL查询字符串在提供动态值时不得具有替换块

时间:2017-08-26 17:01:58

标签: java android retrofit retrofit2

我想使用retrofit获取JSON数据得到此错误

  

引起:java.lang.IllegalArgumentException:URL查询字符串   " Q = {文本}&安培; langpair = {l_from} | {l_to}"一定不能有替换块。对于   动态查询参数使用@Query。

我的代码是

    // example of my site
    // http://mytempsite.com/get?q=hello friend&langpair=en|ur

    @GET("get?q={text}&langpair={from}|{to}")
    Call<ApiService> getJsonData(@Query("text") String text,
                                 @Query("from") String from,
                                 @Query("to") String to);

我的通话请求

Call<ApiService> call = apiService.getJsonData("hello word","en","ur");

但是当我像这样静态地使用它时会起作用。

@GET("get?q=Hello Word&langpair=en|ur")
        Call<ApiService> getJsonData(@Query("text") String text,
                                     @Query("from") String from,
                                     @Query("to") String to);

1 个答案:

答案 0 :(得分:3)

试试这段代码:

@GET(".")
Call<ApiService> getJsonData(@Query("q") String text,
                             @Query("langpair") String langpair);

Call<ApiService> call = apiService.getJsonData("hello word","en|ur");