日期:2014-05-20  浏览次数:20850 次

急!!!HttpURLConnection无限等待的问题!!!
我在程序中使用HttpURLConnection连接URL,但有时会连接的时间过长,一直等待下去
我已经设置了超时,但是感觉没有效果
connection.setConnectTimeout(connectTimeout*1000);
connection.setReadTimeout(readTimeout*1000);
然后获取并解析页面
connection.connect();
InputSource inpSrc = new InputSource(new InputStreamReader(connection.getInputStream(),"utf-8"));
inpSrc.setEncoding(encoding);
SAXReader reader = new SAXReader();
Document doc = reader.read(inpSrc); //程序有时会卡死在这一句上

我想知道是什么原因导致的程序无限等待,还有应该如何解决



------解决方案--------------------
试试改成先把xml文件读取下来再做分析。
没研究过SAX的源码,不知道在read的时候你设置的ReadTimeout有没有效果。
------解决方案--------------------
你先把时间设的小一点,测一下,看看会不会在相应的时间里结束程序,如果没有,说明设置的不对,然后再找原因!!
------解决方案--------------------
单步测试,看程序走到设置的那里是不是会执行,然后就可能知道哪里出错,就好解决了!~~
------解决方案--------------------
我觉得还是inpSrc 所指向的那个xml文件的格式问题,如果能先得到这个文件,然后用reader读入它,如果出错的话,可以先分析一下这个xml文件内容,看是否符合规范。