当前位置:首页 > 日记 > 正文

Http请求长时间等待无结果返回解决办法

Http请求长时间等待无结果返回解决办法

Http请求长时间等待无结果返回解决办法

今天遇到一个奇葩的问题,这个程序主要是用于调用接口搜集数据的,但是,发生了不好的事情就是服务器中启动的进程非常多,一直无法结束,没办法只能采用kill的方法,将所有的这部分进程杀掉。

分析了下程序,写了个测试,本地跑依旧长时间等待,无法运行,也不抛出异常,最后发现问题在于发送请求的部分,一直在等待对方服务器响应,由于采用的是keep-alive方式的连接,这里没有采用超时的方式,以至于程序会长时间等待下去。

经过测试发现开启进程过多在于没有设置超时,希望读者注意这部分,否则,容易出现笔者遇到的这种问题。最终的问题应该是接口提供方的异常导致。

public static String sendPost(String url, String param) {      PrintWriter out = null;      BufferedReader in = null;      String result = "";      try {        URL realUrl = new URL(url);        // 打开和URL之间的连接        URLConnection conn = realUrl.openConnection();        // 设置通用的请求属性        conn.setRequestProperty("accept", "*/*");        conn.setRequestProperty("connection", "Keep-Alive");        conn.setRequestProperty("user-agent",            "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");        conn.setConnectTimeout(4000);        conn.setReadTimeout(4000);        // 发送POST请求必须设置如下两行        conn.setDoOutput(true);        conn.setDoInput(true);        // 获取URLConnection对象对应的输出流        out = new PrintWriter(conn.getOutputStream());        // 发送请求参数        out.print(param);        // flush输出流的缓冲        out.flush();        // 定义BufferedReader输入流来读取URL的响应        in = new BufferedReader(            new InputStreamReader(conn.getInputStream()));        String line;        while ((line = in.readLine()) != null) {          result += line;        }      } catch (Exception e) {        System.out.println("发送 POST 请求出现异常!");        //e.printStackTrace();      }      //使用finally块来关闭输出流、输入流      finally{        try{          if(out!=null){            out.close();          }          if(in!=null){            in.close();          }        }        catch(IOException ex){          //ex.printStackTrace();        }      }      return result;    }

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

excel怎么批量删除单元格数据excel

excel怎么批量删除单元格数据excel

批量删除,数据,方法,步骤,单元格,  在输入excel后才发现很多数据是无效的,哎,真麻烦,难道又要一个个删除?其实并不用,小编马上就告诉你怎么批量删除单元格的数据。excel批量删除单元格数据的步骤①打开Excel2013,导入数据源,我们要把红色单元格…

wps ppt怎么制作流程图wps ppt做流

wps ppt怎么制作流程图wps ppt做流

流程图,方法,制作教程,电脑软件,wps,  平时工作中,我们都会使用wps的ppt制作流程图。做出来的流程图直观又简洁,下面小编就为你提供wps ppt制作流程图的方法,希望对你有帮助!wps ppt制作流程图的方法安装Powerpoint软件,并打开,新建一个空白文…

wps如何做数据透视表图文教程

wps如何做数据透视表图文教程

数据,图文教程,方法,透视,如何做,  为了让我们更好地分析数据,我们一般需要在wps表格中制作数据透视表,对于新手来说可能不知道如何制作透视图。下面就让小编告诉你在wps中制作数据透视表的方法,希望对大家有所帮助。wps做数据透视表的方法w…

js实现适配不同的屏幕大小

js实现适配不同的屏幕大小

屏幕,大小,电脑软件,js,话不多说,请看代码:// 通过js适配不同的屏幕大小(function (doc, win) { var docEl = doc.documentElement, resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize', recalc = fu…

分享vue.js devtools遇到一系列问

分享vue.js devtools遇到一系列问

分享,系列,电脑软件,js,vue,使用vue.js devtools遇到的磕磕绊绊,具体如下1.首先我们需要在谷歌浏览器扩展程序中点击获取更多2.在搜索框输入vue.js devtools,点击安装此扩展3.检查扩展是否开启我们需要检测我的扩展是否开启,允许文件地址是否…

angular十大常见问题

angular十大常见问题

常见问题,十大,电脑软件,angular,AngularJS可以视为是一种数据优先的框架,在它的三个层面中,数据模型是骨架,视图模型和业务事件是血肉,视图模板和指令是皮毛,这三层合在一起,就形成了一个活生生的Web应用。1.ng-if的情况下 ,始终将页面中的元素绑…

JavaScript学习总结之正则的元字符

JavaScript学习总结之正则的元字符

元字符,学习,正则,简单,电脑软件,一、元字符:  每一个正则表达式都是由元字符和修饰符组成的[元字符] ->在两个/之间的具有意义的一些字符 reg = /^\d$/ //只能是一个0-9之间的数字   1、具有特殊意义的元字符\ : 转义字符,转译后…

word2007怎么旋转文字word2007旋转

word2007怎么旋转文字word2007旋转

文字,步骤,方法,电脑软件,strong,  有时候需要旋转文档文字才符合要求,如何旋转文字呢?那么下面就由小编为大家分享下word2007旋转文字的技巧,希望能帮助您,有需要的朋友可以来看看哦。word2007旋转文字的步骤步骤一:依次单击“插入,艺术…

ps软件怎样安装汉化包

ps软件怎样安装汉化包

软件安装,方法,安装,汉化包,电脑软件,  ps软件有很多语言版本的,如果大家需要用汉语的可以用汉化包。那么大家知道ps软件怎样安装汉化包吗?下面是小编整理的ps软件怎样安装汉化包的方法,希望能帮到大家!ps软件安装汉化包的方法首先安装ADOB…

使用JS和canvas实现gif动图的停止

使用JS和canvas实现gif动图的停止

代码,电脑软件,JS,canvas,gif,HTML5 canvas可以读取图片信息,绘制当前图片。于是可以实现图片马赛克,模糊,色值过滤等很多图片特效。我们这里不用那么复杂,只要读取我们的图片,重绘下就可以。HTML代码:<img id="testImg" src="xxx.gif" width…

JavaScript实现实时更新系统时间的

JavaScript实现实时更新系统时间的

实时更新,实例代码,系统时间,电脑软件,JavaScript,一、Js代码 function getTime(){ str = "当前系统时间:" var p = document.getElementById("sy_time"); time = new Date(); year = time.getFullYear(); month = …

HTML中使背景自适应浏览器大小实例

HTML中使背景自适应浏览器大小实例

自适应,浏览器,详解,实例,大小,HTML中使背景图片自适应浏览器大小实例详解解决办法:1、图片不够大,又background属性不能拉伸图片; 2、只能用个div,把其z-index值设为负,并使这个div大小为整个body大小,在div里用<img> ;3、body的background属性去…