URL query string "q={city}" must not have replace block
Ich kann das nicht zur Arbeit, ich habe mehrere andere Varianten ausprobiert, aber immer noch irgendeine Form der Ausnahme.Wie setze ich Annotation und Query in Retrofit 2.0+ richtig?
public interface WeatherInterface {
@GET("/weather?q={city}")
Call<WeatherModel> getWeather(@Query("city") String city);
}
/////
public interface WeatherInterface {
@GET("/weather")
Call<WeatherModel> getWeather(@Query("q") String city);
}
Und so weiter.
WeatherActivity.class
Call<WeatherModel> call = weatherInterface.getWeather("""CITYNAME""");
call.enqueue(new Callback<WeatherModel>() {
@Override
public void onResponse(Call<WeatherModel> call, Response<WeatherModel> response) {
if(response.isSuccessful()) {
**///FIRST VARIANT FAILS HERE**
city.setText(response.body().getName());
}
**///SECOND VARIANT FAILES RESPONSE**
else Log.d("No response", "RESPONSE");
}
@Override
public void onFailure(Call<WeatherModel> call, Throwable t) {
Log.d("fail", "fail");
}
});
EDIT: Log.d (.. Call.request() URL() toString() "URL CALL REQUEST");
Ich sollte meine Lösung wahrscheinlich auch teilen, ich habe gerade die Anruf-URL protokolliert.
Ja, ich habe die Unterlagen geprüft, aber anscheinend war mein api Schlüssel fehlt. Das Protokoll zeigt auch, wie der URL-Aufruf aussieht, wenn das irgendjemandem hilft. – JoSem