当前位置:编程学习 > JAVA >>

HttpURLConnection.connect() 卡死 死锁怎么解决

我的程序有时候会卡死 关闭的时候还必须用任务管理器才能结束进程

经调试发现问题在 


Log.println("connecting");
conn.connect();
Log.println("connected");

打印了connecting就一直不动了,卡在 conn.connect() 设置了超时时间不管用

不知道知道是什么原因引起的呢


还望各位不吝赐教,谢谢


                        URL serverUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) serverUrl.openConnection();
conn.setConnectTimeout(20000);
conn.setRequestMethod(method);// "POST" ,"GET"
conn.addRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
conn.addRequestProperty("User-Agent","Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36 CoolNovo/2.0.9.16");
if (method.equalsIgnoreCase(Method.GET.name())) {
Log.println("connecting");
conn.connect();
Log.println("connected");
} else if (method.equalsIgnoreCase(Method.POST.name())) {
conn.setDoOutput(true);
conn.connect();
conn.getOutputStream().write(contents.getBytes());
}
--------------------编程问答-------------------- conn.setReadTimeout(20 * 1000); 
加上这句 --------------------编程问答-------------------- setReadTimeout --------------------编程问答-------------------- 记得流对象用完要close(); --------------------编程问答-------------------- 卡死然后干什么?
你是想要不卡死,还是卡死之后干掉,还是怎么着?
你那个url是啥,本机能不能访问? --------------------编程问答--------------------
引用 4 楼 eastoneking 的回复:
卡死然后干什么?
你是想要不卡死,还是卡死之后干掉,还是怎么着?
你那个url是啥,本机能不能访问?


我是想让它不卡死 或者卡死之后多少秒之后退出

url本机能访问的

我加了 conn.setReadTimeout(20 * 1000);  貌似还是有这样的情况出现

我再测试下看看

前几天一直没管这个问题 --------------------编程问答-------------------- 用jstack看一下锁在哪儿了,分析下原因呗。
补充:Java ,  Java EE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,