retrofit.RetrofitError:404 Not Found

时间:2015-04-21 01:24:02

标签: android api service get retrofit

我正在开发一个利用Retrofit进行api调用的Android应用程序。当我调用以下代码时:

String searchText = query;
RestAdapter restAdapter = new RestAdapter.Builder()
        .setEndpoint("https://mashape-community-urban-dictionary.p.mashape.com")
        .build();
WordsApiService wordsApi = restAdapter.create(WordsApiService.class);
wordsApi.getWordDefinition(query, new Callback<WordsResponse>() {
    @Override
    public void success(WordsResponse wordsResponse, Response response) {
        System.out.println(response.toString());
    }

    @Override
    public void failure(RetrofitError error) {
        System.out.println(error.getResponse().getStatus());
    }
});

使用以下服务:

public interface WordsApiService {

    @Headers({
            "X-Mashape-Key : *insert real api key*",
            "Accept: text/plain"
    })
    @GET("/define/")
    void getWordDefinition(@Query("word") String word, Callback<WordsResponse> callback);

}

我收到404错误(retrofit.RetrofitError:404 Not Found)。
当我进入mashape时,我看到服务电话正在通过并击中api。

我是否遗漏了应用程序配置方面的明显内容?

1 个答案:

答案 0 :(得分:2)

"define" endpoint路径中删除正斜杠 此外,查询参数是&#34; term&#34;而不是&#34;字&#34;

public interface WordsApiService {
    @Headers({
        "X-Mashape-Key : *insert real api key*",
        "Accept: text/plain"
    })
    @GET("/define")
    void getWordDefinition(@Query("term") String term, Callback<WordsResponse> callback);
}