Строка запроса URL-адреса с ошибкой модификации не должна содержать блок замены предоставленными динамически значениями.

Я хочу получить данные JSON с помощью модификации, получить эту ошибку

Причина: java.lang.IllegalArgumentException: строка запроса URL не должна заменять блок. Для динамических параметров запроса используйте @Query.

Мой код

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 отображается ошибка. как передать слово для ссылки, пожалуйста


person Attaullah    schedule 21.09.2019    source источник


Ответы (1)


Попробуй это

    @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");
person jay shah    schedule 21.09.2019