当前位置: 首页 > 知识库问答 >
问题:

修改错误URL查询字符串不能具有动态提供的replace block by值

慕逸仙
2023-03-14

我想使用reverfit获取JSON数据获取此错误

public interface ApiService {
    // this is link, WORD is dynamic string passing from activity
    // https://en.wikipedia.org/w/api.php?action=query&list=search&srsearch=WORD&format=json

        @GET("/w/api.php?action=query&list=search&srsearch={word}&format=json")
        Call<Search> getWordList(@Query({word}) String myText);
    }
public class RetroClient { 
    private static final String ROOT_URL = "https://en.wikipedia.org/";

    private static Retrofit getRetrofitInstance() {
        return new Retrofit.Builder()
                .baseUrl(ROOT_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .build();
    }

    public static ApiService getApiService() {
        return getRetrofitInstance().create(ApiService.class);
    }
}
 Call<Search> call = apiService.getJsonData("myText");

 call.enqueue(new Callback<Search>() {
    @Override
    public void onResponse(Call<Search> call, Response<ApiService> Search) {
        //    int statusCode = response.code();
        if (response.body() != null) {
            translates = response.body().getMatches();
        }  

    }

    @Override
    public void onFailure(Call<Search> call, Throwable t) {

    }
 });

在ApiService类中显示错误。请告诉我如何将单词传递给链接

共有1个答案

农飞翔
2023-03-14

试试这个

    @GET("/w/api.php")
    Call<Search> getWordList(
       @Query("action") String action,
       @Query("list") String list,
       @Query("srsearch") String srsearch,
       @Query("format") String format);

然后这样打电话

       Call<ApiService> call = apiService.getJsonData("query","search","<Word Which you want to pass>","json");
 类似资料:
  • 我想使用reverfit获取JSON数据获取此错误 原因:java.lang.IllegalArgumentException:URL查询字符串“q={text}&langpair={l_from}{l_to}”不能有replace block。对于动态查询参数,请使用@query。 但当我这样静态使用时,它就会起作用。

  • 我正在尝试使用Revovit2调用一个遗留API,这是URL,这是接口方法 不管我遇到什么错误,

  • 问题内容: 我在玩node.js,express和mongoose。 为了立即启动并运行,我将Express查询字符串对象直接传递给mongoose find函数。我很好奇的是,这种做法在实时应用中会有多危险。我知道RDBMS极易受到SQL注入的攻击。除了“清理您的输入”的好建议之外,这段代码有多邪恶: 这意味着获取请求只会将以下内容推送到findDocs函数中: 由于种种原因,这感觉很不好,但是

  • 我是thymeleaf新手,我想使用thymeleaf url创建动态查询字符串。对于分页,我在所有页面中使用公共片段和include片段。在所有页面中都有搜索选项,还需要分页进行搜索。所以,我们需要在搜索条件的分页中传递动态查询字符串。但是当我创建动态查询字符串时,URL会对特殊字符进行编码,如和

  • 我试图使用AzureB2COAuth为Alexa帐户链接隐式流。下面是来自Alexa的重定向网址 https://alexa.amazon.co.jp/spa/skill/account-linking-status.html?vendorId=XXXXXXXXXX 但添加此选项会在AzureB2C应用中产生以下错误。 无法更新xxx-XXXXXX应用程序。错误详细信息:URL可能不包含查询字符串

  • 我想它一定是在请求体。我如何发送‘更新’查询或我做错了?