2016-07-14 10 views
0

Ich arbeite an Yahoo Aktien Daten. Gestern habe ich die Bestandsdaten mit Hilfe von Finance Web Service API bekommen. Aber heute, wenn ich versuche, die Daten von api zu bekommen ich die unten Störung erhalte:wie zu lösen vorübergehend bewegt Fehler für Yahoo Finanzen api

{ 
   "p": { 
      "a": { 
         "href": "https://finance.yahoo.com/webservice/v1/symbols/msft,goog,appl,orcl,yhoo,tcs,amzn,INFY.NS/quote?bypass=true&format=json&view=detail", 
         "content": "https://finance.yahoo.com/webservice/v1/symbols/msft,goog,appl,orcl,yhoo,tcs,amzn,INFY.NS/quote?bypass=true&format=json&view=detail" 
      }, 
      "content": "Moved Temporarily. Redirecting to" 
   } 
} 

Zu sagen, dass es vorübergehend verschoben wurde.
Warum erhalte ich diesen Fehler? Habe ich das API-Limit für heute erreicht?

HINWEIS:
Gestern hielt ich es laufen die API-Anforderung Limit zu testen. Aber wenn ich versuche, heute zu laufen, zeigt es den obigen Fehler an.

Wenn das API-Limit für IP erreicht ist, wann bekomme ich dann wieder Zugang zu den Daten?
Dies ist die API, die ich benutze:

http://finance.yahoo.com/webservice/v1/symbols/msft,goog,appl,orcl,yhoo,tcs,amzn,INFY.NS/quote?format=json&view=detail 

Antwort

1

wie es war hier kommentiert: https://stackoverflow.com/a/38390559/6586718, müssen Sie den User-Agent auf einem mobilen Gerät ändern.

Auf Java, das tue ich das folgende, und es funktioniert (dies ist für XML ist, aber das gleiche kann auf JSON angewendet werden):

URL url = new URL ("https://finance.yahoo.com/webservice/v1/symbols/" + stocks + "/quote"); 
HttpURLConnection urlc = (HttpURLConnection) url.openConnection(); 
urlc.setRequestProperty ("User-Agent", "Mozilla/5.0 (Linux; Android 6.0; MotoE2(4G-LTE) Build/MPI24.65-39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.81 Mobile Safari/537.36"); 
Document xml = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse (urlc.getInputStream()); 
+0

Danke @Carlos Es funktioniert gut und kann Daten von API abrufen. Aber können Sie mir sagen, was bedeutet Wechsel von User-Agent zu Mobilgerät? –

+0

Der Benutzeragent teilt dem Server mit, woher der Anruf kommt. Hier können Sie mehr darüber lesen: https://en.wikipedia.org/wiki/User_agent#Use_in_HTTP In diesem Fall tricksen wir den Server in der Annahme, dass der Anruf von einem ** mobilen Webbrowser * kommt *, denn das ist es, was es akzeptiert. Sobald es feststellt, dass es von einer anderen Stelle kommt (z. B. von einem PC-Browser oder einem Java-Programm), wird es auf eine andere Seite umgeleitet, und die API funktioniert nicht mehr. Übrigens, wenn die Antwort Ihr Problem gelöst hat, bitte markieren Sie es als "gelöst". Vielen Dank! – Carlos

+0

ok danke carlos zu Ihrer Information –

0

mit dieser neuen versuchen ..

https://query.yahooapis.com/v1/public/yql?q=select%20 *% 20von% 20csv% 20where% 20url% 3D'http% 3A% 2F% 2Fdownload.finance.yahoo.com% 2Fd% 2Fquotes.csv% 3Fs% 3DAAPL% 26f% 3Dsl1d1t1c1ohgv% 26e% 3D.csv '% 20and% 20columns % 3D'symbol% ​​2Cprice% 2Cdate% 2CZeit% 2Cchange% 2Ccol1% 2Chigh% 2Clow% 2Ccol2 '& format = json & env = speichern% 3A% 2F% 2Fdatatables.org% 2Falltableswithkeys

+0

Willkommen bei Stack Overflow! Ein Link zu einer möglichen Lösung ist immer willkommen, aber bitte [fügen Sie Kontext um den Link hinzu] (http://meta.stackoverflow.com/a/8259/169503), damit Ihre Mitbenutzer eine Idee haben, was es ist und warum es ist Dort. Zitiere immer den relevantesten Teil eines wichtigen Links, falls die Zielseite nicht erreichbar ist oder permanent offline geschaltet wird. Berücksichtigen Sie, dass * kaum mehr als ein Link zu einer externen Site * ein möglicher Grund dafür ist, warum [warum und wie werden einige Antworten gelöscht?] (Http://stackoverflow.com/help/deleted-answers) – Lahiru