2015-04-21 4 views
2

Я работаю над приложением для Android, которое использует Retrofit для совершения звонков api. Когда я звоню следующий код:retrofit.RetrofitError: 404 Not Found

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 Не найдено).
Когда я вхожу в mashape, я вижу, что вызов службы проходит и атакует api.

Я пропустил что-то очевидное с точки зрения конфигурации приложения?

ответ

2

Снимите косую черту с пути "define" endpoint.
Кроме того, пары запроса «термин», а не «слово»

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); 
} 
+1

Спасибо! Это сделал трюк. Мне очень жаль, что для Retrofit было больше документации. Как noobie, когда дело доходит до потребления api, кажется, что я спотыкаюсь в темноте. – BallmersLeak