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

本人纯属虚构 2013-09-28 02:05:04
我的程序有时候会卡死 关闭的时候还必须用任务管理器才能结束进程

经调试发现问题在


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());
}
...全文
905 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
gehill 2013-10-06
  • 打赏
  • 举报
回复
用jstack看一下锁在哪儿了,分析下原因呗。
本人纯属虚构 2013-10-05
  • 打赏
  • 举报
回复
引用 4 楼 eastoneking 的回复:
卡死然后干什么? 你是想要不卡死,还是卡死之后干掉,还是怎么着? 你那个url是啥,本机能不能访问?
我是想让它不卡死 或者卡死之后多少秒之后退出 url本机能访问的 我加了 conn.setReadTimeout(20 * 1000); 貌似还是有这样的情况出现 我再测试下看看 前几天一直没管这个问题
临碣 2013-09-29
  • 打赏
  • 举报
回复
卡死然后干什么? 你是想要不卡死,还是卡死之后干掉,还是怎么着? 你那个url是啥,本机能不能访问?
闲去野鹤 2013-09-29
  • 打赏
  • 举报
回复
记得流对象用完要close();
tony4geek 2013-09-29
  • 打赏
  • 举报
回复
setReadTimeout
q244013604 2013-09-29
  • 打赏
  • 举报
回复
conn.setReadTimeout(20 * 1000); 加上这句

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧