I yahoo Wetter api verwenden und Ergebnis zu erzielen diesen Link:mit Yahoo Wetter Api
Jetzt mag ich mit Retrofit dieser URL zu verwenden. Sagen Sie mir bitte, wie Sie die Stadt ändern können, indem Sie eine Frage stellen.
Danke
I yahoo Wetter api verwenden und Ergebnis zu erzielen diesen Link:mit Yahoo Wetter Api
Jetzt mag ich mit Retrofit dieser URL zu verwenden. Sagen Sie mir bitte, wie Sie die Stadt ändern können, indem Sie eine Frage stellen.
Danke
Es wäre so etwas wie dies am Ende als:
public interface WeatherService {
@GET("v1/public/yql")
Call<String> getWeather(@Query("q") String query);
}
Dann Erstellen Sie das Objekt wie folgt:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://query.yahooapis.com")
.addConverterFactory(ScalarsConverterFactory.create())
.build();
WeatherService wService = retrofit.create(WeatherService.class);
Und es wie folgt aus:
String query = "select * from weather.forecast where woeid in (select woeid from geo.places(1) where text=\"Leeds\")&format=json";
Call<String> weather = wService.getWeather(query);
try {
Response<String> resp = weather.execute();
Sie sollten die ConverterFactory zu json ändern und richtig die Wetter Ausgabe analysieren.
Ich habe dies nicht getestet, nur eine Idee, wie Sie die Retrofit-Abfrage verwenden.
Wenn ich gut verstehen, werden Sie nach einem Weg suchen, um eine gegebene Stadt auf die URL enthält. Hier ist ein Beispielcode, wie es geht. Im Beispiel könnte die Variable Stadt einen beliebigen Stadtnamen annehmen.
var city = "london";
var query = "select%20*%20from%20weather.forecast%20where%20woeid%20in%20(select%20woeid%20from%20geo.places(1)%20where%20text%3D%22"+ city +"%22)&format=json"
Update:
dann könnte man die Abfrage an die Basis-URL wie folgt verketten:
var baseurl = "https://query.yahooapis.com/v1/public/yql?q=" + query;