使用HttpURLConnection获取网页时,如果网页打开速度快的话没有问题,如果网页打开速度慢一点,这个页面就读取不了,按道理网页慢的时候程序应该是卡死在那里,为什么我的就直接过去了,而且没有错误抛出

解决方案 »

  1.   

    HttpURLConnection是基于HTTP协议的,其底层通过socket通信实现。如果不设置超时(timeout),在网络异常的情况下,可能会导致程序僵死而不继续往下执行。可以通过以下两个语句来设置相应的超时:
    System.setProperty("sun.net.client.defaultConnectTimeout", 超时毫秒数字符串);
    System.setProperty("sun.net.client.defaultReadTimeout", 超时毫秒数字符串);
    其中: sun.net.client.defaultConnectTimeout:连接主机的超时时间(单位:毫秒)
    sun.net.client.defaultReadTimeout:从主机读取数据的超时时间(单位:毫秒)