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

标签 java android retrofit retrofit2

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

Caused by: java.lang.IllegalArgumentException: URL query string "q={text}&langpair={l_from}|{l_to}" must not have replace block. For dynamic query parameters use @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);

最佳答案

试试这个代码:

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

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

关于java - 改进错误 URL 查询字符串在提供动态值时不得有替换 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45897750/

相关文章:

javascript - TextInputMask 仅适用于正数

java - picasso android图像未加载

android - 调用 getActivity 时 retrofit 回调中的空指针

java - 如何在非 ICS android 设备上拥有 android ICS 组件

java - 对于未实现 AutoCloseable 的类,使用 lambda 是一种安全、正确且等效的解决方法吗?

java - 当我单击弹出菜单中的项目时,如何展开 AlertDialog 的布局?

android - 如果发生 HttpException,Retrofit 和 RxJava 的单元测试永远不会完成

java - 如何在隐式 long 到 double 转换时产生编译错误?

java - 使用 apache poi 从 excel 获取错误值

android - scrollBy on 后刷新 Android listview