2016-11-08 4 views
0

Ich benutze Retrofit-Bibliothek und ich möchte Wetterbericht von OpenWeatherAPI bekommen.So fügen Sie Variable zu verknüpfen

Ich habe das.

Basis-URL: http://api.openweathermap.org/data/2.5/

@GET("weather?q=&units=&appid=" + API_KEY) 
Call<WeatherAPI> getWeatherCity(@Query("city") String city, @Query("units") String units); 

Aber ich habe schlechte url (ich weiß nicht, wie es zu reparieren) -

Antwort {protocol = http/1.1, Code = 502 Nachricht = Bad Gateway, url = http://api.openweathermap.org/data/2.5/weather?q=&units=&appid=111111111111111111111111&city=&units=metric}

Antwort

0

Ihr Problem ist in der uRL. Wenn wir die URL abbrechen, können Sie den Fehler sehen.

So haben wir den Hauptteil der URL:

http://api.openweathermap.org/data/2.5/weather

dann die erste param

?q=, aber sie haben nichts, um es nach dem = hinzugefügt, so ist dies Ihre erste Problem.

dann:

&units= wieder mit nichts nach dem =, so ist dies Ihr nächstes Problem.

dann:

&appid=111111111111111111111111 dieses Bit ist in Ordnung.

dann:

&city= wieder nichts nach =.

dann:

&units=metric dieses Bit ist in Ordnung.

Ihr Problem besteht also nicht darin, Werte an die Parameter zu übergeben.

+0

Ja, aber wie diese Werte an URL übergeben? – Stepan

+0

mit Nur-Text können Sie tun "? Q = London" oder Sie können es mit Variablen und String-Verkettung so tun: String place = "London"; "? q =" + place + "& city =" + .... – MichaelStoddart

+0

und ist das möglich? '@GET (" weather? Q = {city} & units = {units} & appid = "+ API_KEY) Aufruf getWeatherCity (@Path (" city ") String city, @Path (" units ") String units);' es gibt mir einen Fehler – Stepan

Verwandte Themen