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

发布时间 - 2026-01-11 00:50:47    点击率:

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;
    }

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


# Http请求长时间等待无结果返回  # Http请求长时间无信息返回  # Node.js发送HTTP客户端请求并显示响应结果的方法示例  # 模拟HTTP请求实现网页自动操作及数据采集的方法  # java 中http请求为了防止乱码解决方案  # Java使用HttpClient实现Post请求实例  # 微信小程序 http请求封装详解及实例代码  # Angular的$http的ajax的请求操作(推荐)  # 完美解决node.js中使用https请求报CERT_UNTRUSTED的问题  # 长时间  # 这部  # 的是  # 也不  # 没办法  # 希望能  # 写了  # 谢谢大家  # 在等待  # 解决办法  # 抛出  # 两行  # 主要是  # 应该是  # 发生了  # 器中  # BufferedReader  # PrintWriter  # null  # param 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  浅析上传头像示例及其注意事项  HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】  Laravel如何实现本地化和多语言支持?(i18n教程)  如何快速搭建高效服务器建站系统?  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  如何用花生壳三步快速搭建专属网站?  Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧  LinuxShell函数封装方法_脚本复用设计思路【教程】  Laravel如何创建自定义Artisan命令?(代码示例)  如何基于云服务器快速搭建个人网站?  如何有效防御Web建站篡改攻击?  Laravel如何实现事件和监听器?(Event & Listener实战)  Laravel如何实现多对多模型关联?(Eloquent教程)  Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  如何自定义建站之星模板颜色并下载新样式?  如何破解联通资金短缺导致的基站建设难题?  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  香港服务器建站指南:免备案优势与SEO优化技巧全解析  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  网站制作价目表怎么做,珍爱网婚介费用多少?  香港服务器选型指南:免备案配置与高效建站方案解析  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】  android nfc常用标签读取总结  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  如何在云主机快速搭建网站站点?  Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制  如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】  Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】  佛山企业网站制作公司有哪些,沟通100网上服务官网?  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  如何在腾讯云服务器快速搭建个人网站?  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)  Laravel如何配置和使用缓存?(Redis代码示例)  HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】  Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  Laravel如何与Inertia.js和Vue/React构建现代单页应用  Win11关机界面怎么改_Win11自定义关机画面设置【工具】  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  微信小程序 HTTPS报错整理常见问题及解决方案  Android仿QQ列表左滑删除操作  如何在IIS7上新建站点并设置安全权限?  如何正确下载安装西数主机建站助手?