2010-11-08 4 views
7

Ich benutze den XMLReader, um einfach einen Feed wie unten zu lesen."Timeout beim Abrufen" URLFetch GAE/J

URLConnection urlConnection = url.openConnection(); 
XmlReader reader = new XmlReader(urlConnection); 

Wenn diese aufgerufen wird, erhalte ich innerhalb von 5 Sekunden eine IOException "Timeout beim Abrufen". Also habe ich versucht, die Timeouts auf Maximum zu stellen. (10 sec) aber immer noch kein Glück und trotzdem eine IOExeption in 5 sec.

urlConnection.setConnectTimeout(10000); 

(der max ist in der Dokumentation angegeben: http://code.google.com/intl/nl-NL/appengine/docs/java/urlfetch/overview.html)

Es scheint, dass die Größe des Futters zu groß ist. Wenn ich einen kleineren Feed anrufe, funktioniert es richtig. Gibt es einen Workaround oder eine Lösung dafür? Ich muss größere Feeds aufrufen können.

Antwort

10

sollten Sie setReadTimeout Methode verwenden, die die Lese Frist setzt:

urlConnection.setReadTimeout(10000); //10 Sec 

Sie sollten größere Feeds in 10 Sekunden herunterladen können.
Wenn Sie immer noch Probleme haben, versuchen Sie, mit this anderen Ansatz zu geigen.

+1

Danke für die schnelle Antwort. Ich habe es versucht, leider immer noch die selbe Ausnahme. Es scheint, dass innerhalb von 5 Sekunden keine Antwort erfolgt. –

+1

@Ben klingt seltsam für mich; Wie viele Sekunden dauert es, um diesen Feed beispielsweise per Browser zu erhalten? – systempuntoout

+0

Es dauert etwa 10 Sekunden. im Browser (Firefox/Chrome/IE) –

0

Der Grund dafür ist:

Wenn keine Daten für die Lese Timeout-Zeit zur Verfügung steht, kann Ausnahme ausgelöst werden. Von the doc of Oracle

kann A SocketTimeoutException geworfen werden, wenn aus dem zurückgegebenen Eingangsstrom zu lesen, wenn die Lese-Timeout abläuft, bevor Daten für Lese verfügbar ist.

By the way, ReadTimeout mit ConnectTimeout unterschiedlich ist, die Lese Timeout das Timeout Daten vom Host zu bekommen, sehen different connection timeout and read timeout

So wie @systempuntoout Antwort, lesen Timeout einstellen müssen.

Verwandte Themen