2013-04-03 20 views
7
// Get woeid by lati/long 
      HttpGet hg = new HttpGet(
         "http://where.yahooapis.com/geocode?location=" + latlon + "&flags=J&gflags=R)"); 
      HttpClient hc = new DefaultHttpClient(); 
      HttpResponse weatherHR = hc.execute(hg); 

      if (weatherHR.getStatusLine().getStatusCode() != HttpStatus.SC_OK) { 
       if (DEBUG) 
        Utils.log("", "Location != HttpStatus.SC_OK"); 
       return null; 
      } 

Użyłem tego API i działa dobrze wcześniej, ale Zwraca błąd od dzisiaj, HttpStatus.SC_OK nie jest OK. Czy ten interfejs API został zamknięty? Dzięki.Jak sprawić, by Yahoo stało się w pobliżu?

Odpowiedz

6

Tak, jest zamknięte, dać do obejrzenia tutaj: http://soup.metwit.com/post/47181933854/an-alternative-to-yahoo-weather-api

+2

Yahoo! API pogodowe jest DEAD na 3 kwietnia 2013 roku. – herbertD

+0

Yahoo przeniosło się do płatnej usługi [BOSS] (http://developer.yahoo.com/boss/geo/), ale twoja alternatywa jest również płatną usługą po prostu z darmową próbą Oferta do czerwca. – Cas

+0

@Cas Mamy 200 połączeń na ip, co oznacza, że ​​możesz zaimplementować usługę po stronie klienta za darmo, dla klientów n, bez uwierzytelniania! Zamierzamy to zmienić za kilka dni z fajnymi rzeczami i planami (za darmo!) – beddamadre

10

Yahoo została przeniesiona do płatnego serwisu o nazwie BOSS ale oferują usługę niekomercyjny:

niekomercyjnego wykorzystania Yahoo Interfejs API Geo:

Yahoo! w dalszym ciągu w pełni wspiera aplikacje deweloperskie zbudowane na platformie Placefinder i PlaceSpotter w ustawieniach niekomercyjnych. Obie usługi są dostępne za pośrednictwem YQL i stawka ograniczona do 2000 zapytań na stół. Dowiedz się więcej o korzystaniu z tabel YQL od Placefinder i Placespotter.

Stosując Placefinder można wstecznego szerokość i długość:

http://developer.yahoo.com/yql/console/?q=select%20*%20from%20geo.placefinder%20where%20text%3D%2237.416275%2C-122.025092%22%20and%20gflags%3D%22R%22

, które mogą być przekształcone na żądanie json:

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20geo.placefinder%20where%20text%3D%2237.416275%2C-122.025092%22%20and%20gflags%3D%22R%22&format=json

+0

Wielkie dzięki! To jest równe poprzedniemu. – herbertD

+3

Teraz to już nie działa – rxlky

1

city może być również używany jako location w następujący sposób:

select * 
from weather.forecast 
where woeid in (
    select woeid 
    from geo.places(1) 
    where text="frankfurt" 
) and u="c" 

Gdzie "frankfurt" można zastąpić dowolną wybraną lokalizacją.

0

Aby uzyskać Yahoo Weather WOEID o szerokości i długości geograficznej, można użyć tej

https://query.yahooapis.com/v1/public/yql?q=select%20woeid%20from%20geo.places%20where%20text%3D%22(20,34)%22%20limit%201&diagnostics=false&format=json 

a otrzymasz odpowiedź tak:

{ 
    "query":{ 
    "count":1, 
    "created":"2017-03-17T20:34:50Z", 
    "lang":"es-AR", 
    "results":{ 
     "place":{ 
     "woeid":"1435509" 
     } 
    } 
    } 
}