Android-Java: Ändra timout time på en URL request

Permalänk
Medlem

Android-Java: Ändra timout time på en URL request

Hej,

Jag sitter och programmerar för en Android-telefon för tillfället men jag har ett väldigt irriterande problem. Jag gör enligt följande när jag försöker hämta en URL och dess innehåll:

private String downloadURL(URL p_pageUrl) { // Create a string buffer StringBuffer buffer = new StringBuffer(); String line = ""; long start = 0; long end = 0; // Start the time taking start = System.currentTimeMillis(); // Try to read the URL to a BufferedReader try { BufferedReader br = new BufferedReader(new InputStreamReader(p_pageUrl.openStream())); while((line = br.readLine()) != null) { // Stop time and print result end = System.currentTimeMillis(); // Have 10 seconds passed? if ((end-start) > 10000) { message += "Time waited before timeout "+(end-start)+" ms.\n"; break; } // Add the data to the buffer buffer.append(line + "\n"); } } catch (IOException e) { System.out.println(e); message += e; } // Store in the string String text = buffer.toString(); return text; }

Jag vill att den ska sluta försöka om den inte hittar URL inom tio sekunder, vilket uppenbarligen inte fungerar. Den stannar troligen tidigare, när den försöker öppna strömmen.

Är t.ex. min server nere så väntar den i 3 min (180 000 ms), sen får jag:

java.net.SocketException: The operation timed out

Jag lyckas inte få detta att fungera!

Tips skulle VERKLIGEN uppskattas

Tack på förhand!

MVH

Johan

Visa signatur

Stek mer! - Flingor - Schampo
Överklockning är är lika överskattat som din dator är överklockad.

Permalänk
Medlem

Har bara skummat genom API-dokumentationen nu men testa att öppna en URLConnection (try-/catch-block är uteblivna i exemplet)

URLConnection c = p_pageUrl.openConnection(); c.setConnectTimeout(10000); c.setReadTimeout(10000); c.connect(); ... BufferedReader br = new BufferedReader(new InputStreamReader(c.getInputStream()));

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem

Wow, tack!

Det fungerade utmärkt!

// Johan

Visa signatur

Stek mer! - Flingor - Schampo
Överklockning är är lika överskattat som din dator är överklockad.

Permalänk
Medlem

Vad kul! Nu blev jag ännu mer sugen på att köpa en Android-telefon för att leka själv

Visa signatur

Kom-pa-TI-bilitet