调用其他系统的servlet

该博客介绍了如何通过HTTP客户端执行POST请求调用其他系统的Servlet,并处理返回的内容。在执行过程中,如果状态码不是200,会抛出异常。同时,博客还展示了如何从响应流中读取内容并进行日志记录。在异常情况下,也进行了时间戳的日志记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
 * @param request
  * @return
  * @throws Exception
  */
 public void saveAllian4AnLian(HttpServletRequest request,HttpServletResponse response){
  long startTime1 = System.currentTimeMillis();
  //ResAGA01001 res = new ResAGA01001();
  //res.setIfSuccess("1");
  String responseBody = "";
  try {
   response.setContentType("text/html;charset=UTF-8");
   request.setCharacterEncoding("UTF-8");
   Protocol myhttps = new Protocol("https", new MySecureProtocolSocketFactory(), 443);
   Protocol.registerProtocol("https", myhttps);
   // 构造HttpClient的实例
   HttpClient httpClient = new HttpClient();
   //链接超时
   httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(20000);
   //读取超时
   httpClient.getHttpConnectionManager().getParams().setSoTimeout(20000);
   // 设置字符,可发送中文
   httpClient.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"utf-8");
  String strUrl = " https://";
   PostMethod postMethod = new PostMethod(strUrl);
   // 设置字符,可发送中文
   postMethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"utf-8");
   // 使用系统提供的默认的恢复策略
   postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
     new DefaultHttpMethodRetryHandler());
   if(StringUtils.isNotBlank(request.getParameter("TicketID"))){
    postMethod.addParameter("message",request.getParameter("("message"));
   }

   。。。。。。。
   // 执行postMethod
   //   int statusCode=0;
   int statusCode = httpClient.executeMethod(postMethod);
   if (statusCode != HttpStatus.SC_OK) {

        throw new  Exception("Method failed:  "+ postMethod.getStatusLine());
   }
   // 读取内容
   responseBody = new String(inputStream2Byte(postMethod.getResponseBodyAsStream()));
   // res.setMessage(responseBody);
   // 处理内容
   long endTime = System.currentTimeMillis();
   logger.warn("====================  " + (endTime - startTime1) + " ms");
   response.getWriter().write(responseBody);
  } catch (Exception e) {
   long endTime = System.currentTimeMillis();
   logger.warn("====================  " + (endTime - startTime1) + " ms");
  }
  }

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值