歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android開發教程:HTTP超時機制

Android開發教程:HTTP超時機制

日期:2017/3/1 10:37:16   编辑:Linux編程

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

超時機制主要有:

1、HTTP請求超時機制

2、Socket通信超時機制

HTTP請求超時機制

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