http请求后,releaseConnection()流就关闭了,请教大家

问题描述

publicstaticInputStreamsendGetAsStream(Stringurl,HttpClienthttpClient){/**创建GET方法的实例*/GetMethodgetMethod=newGetMethod(url);/**使用系统提供的默认的恢复策略*/getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,newDefaultHttpMethodRetryHandler());try{HttpConnectionManagerParamsmanagerParams=httpClient.getHttpConnectionManager().getParams();/**设置连接超时时间(单位毫秒)*/managerParams.setConnectionTimeout(10000);getMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT,10000);//请求超时/**执行getMethod*/intstatusCode=httpClient.executeMethod(getMethod);if(statusCode!=HttpStatus.SC_OK){logger.error("执行Get方法出错:"+url);}returngetMethod.getResponseBodyAsStream();}catch(HttpExceptione){thrownewRuntimeException("协议不正确或返回内容出错:",e);}catch(SocketTimeoutExceptione){thrownewRuntimeException("socket链接超时"+url,e);}catch(IOExceptione){thrownewRuntimeException("执行Get方法网络异常"+url,e);}finally{/**释放连接*/getMethod.releaseConnection();}}释放链接后这个流就关闭了java.io.IOException:Attemptedreadonclosedstream.InputStreamis=newDataInputStream(getMethod.getResponseBodyAsStream());这样的转一下也是报流关闭了,请教下大家应该怎么处理分不多了

解决方案

解决方案二:
try的finally处理中关闭了连接,自然流也关闭了
解决方案三:
楼上正解,不执行getMethod.releaseConnection();就好了

时间: 2025-01-12 10:25:04

http请求后,releaseConnection()流就关闭了,请教大家的相关文章

java httpclient发送请求后,不关闭tcp连接,如何通过tcp连接发送数据

问题描述 在做一个模拟用户在线的操作,网站有在线人数统计功能,对网站抓包时发现,用户登录后tcp连接没有关闭,他判断用户是否在线,是每45s通过tcp连接发送数据,并没有重新发送http请求.那么httpclient该怎么实现这个功能 解决方案

android端soap请求上传图片字符流,服务端C#

问题描述 android端soap请求上传图片字符流,服务端C# android端soap请求上传图片字符流,服务端C#写的webservice, 调用成功后返回当前图片地址 解决方案 一种方法为:C# webservice返回图片的base64编码,然后你在客户端调用这个ws方法,获取到图片的base64编码后,再转为图片.根据你的描述:返回当前图片地址,你根据这个Url直接请求下载图片就可以了.http://www.cnblogs.com/sun8134/archive/2010/07/05

Java IO包装流如何关闭

问题: (1)JAVA的IO流使用了装饰模式,关闭最外面的流的时候会自动调用被包装的流的close()方吗? (2)如果按顺序关闭流,是从内层流到外层流关闭还是从外层到内存关闭? 问题(1)解释: 如下例子代码: 1 2 3   FileInputStream is = new FileInputStream(".");      BufferedInputStream bis = new BufferedInputStream(is);     bis.close(); 从设计模式上

多次Ajax请求后,浏览器会停止请求

问题描述 我在前台用了一个定时器,每隔5秒,就调用后台的一个服务,结果半个小时左右,浏览器就停止再发送请求,服务器仍然正常运行.只要刷新浏览器,它又会发送请求了.哪位大神可有类似情况? 解决方案 引用我在前台用了一个定时器,每隔5秒,就调用后台的一个服务,结果半个小时左右,浏览器就停止再发送请求,服务器仍然正常运行.只要刷新浏览器,它又会发送请求了.哪位大神可有类似情况?就你的信息,我的分析如下:定时器ok:你用了定时器,说明没问题.推荐使用setInterval做ajax也没问题:半个小时左右

在WEBFROM里,Datagrid加载大量数据,网页比较慢。怎样实现弹出等待窗口?加载完毕后,它自己关闭。

问题描述 在WEBFROM里,Datagrid加载大量数据,网页比较慢.怎样实现弹出等待窗口?加载完毕后,它自己关闭. 解决方案 解决方案二:用ajax异步请求解决方案三:ajax我不会.有没有.net上的方法或者javascript解决方案四:.net有个为ajax准备的toolkit开发包装了以后你只需要将你的datagridview控件丢到updatepanle里面就行了,js控制下获取后台数据源绑定的方法,很简单,不用你去理会太多ajax的调用方法,下载地址与使用示例页面的js方法还是需

package-ssh的struts2拦截器拦截请求后页面为什么没有跳转

问题描述 ssh的struts2拦截器拦截请求后页面为什么没有跳转 我在struts.xml里把拦截器添加到了新的拦截器栈,命名了一个package名,然后我在一个子的struts-action-index.xml里继承了这个package做登录验证,并且程序执行时已经进入了拦截器类,并且执行完了类里的代码,返回了Action.Login,为什么通过全局返回处理页面没有跳转到登录页面 <package name=""struts-default-json""

js-安卓手机访问网页的第三方账号登录 授权后的标签页关闭不了

问题描述 安卓手机访问网页的第三方账号登录 授权后的标签页关闭不了 如题,比如用安卓手机访问网页(html+js),网页中有用js写的第三方登录功能(如'用新浪微博登录'),点击登录后,进入授权页,输入新浪微博账号密码,登录成功后,显示'3秒后关闭该标签页',但是该授权标签页一直都关闭不了,为什么呢???(iphone ipad访问网页是正常的) 求大神求解答求解脱

java在一个主线程中开了很多小线程,当主程异常后,希望能关闭这些服务用的小线程,以免冲突。该怎么做

问题描述 java在一个主线程中开了很多小线程,当主程异常后,希望能关闭这些服务用的小线程,以免冲突.该怎么做 我是这样写的: thread mainThread(){ while(true){ init; try{ new serverThread1; ... new serverThread2; ... ... }catch(e){ ... if(flag_exit)break; ... } } } 通常,这个主线程会经常遇问题,所以会抛出异常,因为有while(true),它会从头开始运行

get请求-$.get() 发送请求后得到返回值后 隔一段时间还会再次发一次 这是什么原因呢????

问题描述 $.get() 发送请求后得到返回值后 隔一段时间还会再次发一次 这是什么原因呢???? $.get() 发送请求后得到返回值后, 隔一段时间还会再次发一次 ,第二次发的其中的中文参数都成了乱码,请教这是什么原因.为什么会再次发送呢 解决方案 java程序设计问题在线求答 解决方案二: $.get() 发送请求后得到返回值后 隔一段时间还会再次发一次 这是什么原因呢???? 解决方案三: 为什么发..这个得问你,自己写的代码还不清楚... 解决方案四: 应该是哪一个地方不小心写了调用到