歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android開發教程:HTTP超時機制

由於手機端應用的響應,與當時的無線通信網絡狀況有很大的關聯。而通信網絡往往具有不穩定,延遲長的特點。所以,在我們的應用程序中,當我們請求網絡的時候,超時機制的應用就顯得特別重要。

超時機制主要有:

1、HTTP請求超時機制

2、Socket通信超時機制

HTTP請求超時機制

  1. public static void main(String[] args){   
  2.   
  3. long a=System.currentTimeMillis();   
  4. try{   
  5. URL myurl = new URL(“http://www.linuxidc.com”);   
  6. URLConnection myurlcon = myurl.openConnection();   
  7. myurlcon.setConnectTimeout(1000);   
  8. myurlcon.setReadTimeout(1000);   
  9. BufferedReader in = new BufferedReader(new InputStreamReader(myurlcon.getInputStream(),”UTF-8″));   
  10. String inputLine;   
  11.   
  12. while ((inputLine = in.readLine()) != null){   
  13. System.out.println(inputLine);   
  14. in.close();   
  15. System.out.println(System.currentTimeMillis()-a);   
  16. }   
  17. catch (MalformedURLException e) {   
  18. e.printStackTrace();   
  19. catch (UnsupportedEncodingException e) {   
  20. e.printStackTrace();   
  21. catch (IOException e) {   
  22. e.printStackTrace();   
  23. }   
  24.   
  25. }   
  26.   
  27.   
  28. 如果超時 將 拋出 以下 異常   
  29.   
  30. java.net.SocketTimeoutException: Read timed out   
  31. at java.net.SocketInputStream.socketRead0(Native Method)   
  32. at java.net.SocketInputStream.read(SocketInputStream.java:129)   
  33. at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)   
  34. at java.io.BufferedInputStream.read1(BufferedInputStream.java:256)   
  35. at java.io.BufferedInputStream.read(BufferedInputStream.java:313)   
  36. at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:606)   
  37. at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:554)   
  38. at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:940)   
  39. at com.Test.main(Test.java:52)  
Copyright © Linux教程網 All Rights Reserved