Строка запроса URL ошибки дооснащения не должна иметь блок замены с помощью предоставленных динамических значений - PullRequest
0 голосов
/ 21 сентября 2019

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

1 Ответ

2 голосов
/ 21 сентября 2019

Попробуйте это

    @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");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...