HttpClient实现远程发送servlet通信

该博客介绍了一个Java Servlet(TestServlet)如何使用Apache HttpClient库向远程URL(http://127.0.0.1:8090/mpc2/SendMessage2Hwpw)发送XML数据。首先,它从文件"C://userStop.xml"中读取XML内容,然后通过HttpPost创建一个HTTP请求,将XML内容作为InputStreamEntity设置到请求体中。执行POST请求后,博客还展示了如何解析并处理响应内容。
摘要由CSDN通过智能技术生成

import java.io.BufferedReader;
import java.io.ByteArrayInputStream;

import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.FileReader;
import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.entity.InputStreamEntity;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

 

import java.io.*;
import java.net.*;
import java.sql.Date;
import java.sql.Timestamp;

/**发送xml信息

*/

public class TestServlet extends HttpServlet {
 
 
 protected void doPost(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  // TODO Auto-generated method stub
  super.doGet(req, resp);
 }
 @Override
 protected void doGet(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {

         HttpClient httpclient = new DefaultHttpClient();
         HttpPost httppost = new HttpPost("http://127.0.0.1:8090/mpc2/SendMessage2Hwpw");
         
         /*读取xml 并发送*/
         BufferedReader fin = new BufferedReader(new FileReader("C://userStop.xml"));
         StringBuffer stringbuffer = new StringBuffer();
         char ac[] = new char[8192];
         int i;
         while ((i = fin.read(ac)) > 0)
         stringbuffer.append(ac, 0, i);
        
         fin.close();
         // todo:编码需要进行转换,否则中文乱码
      InputStream stream = new ByteArrayInputStream(stringbuffer.toString().getBytes("UTF-8"));
         HttpEntity entity = new InputStreamEntity(stream,stringbuffer.toString().getBytes("UTF-8").length);
         httppost.setEntity(entity);

         // 执行Post XML
         HttpResponse response = httpclient.execute(httppost);

         // 解析返回结果
         HttpEntity resEntity = response.getEntity();
         if (resEntity != null) {
             InputStream stream1 = resEntity.getContent();
             BufferedReader in = new BufferedReader(new InputStreamReader(stream1));
             StringBuffer buffer = new StringBuffer();
             String line = "";
             while ((line = in.readLine()) != null){
               buffer.append(line);
             }
         }
         // 执行
         if (resEntity != null) {
             resEntity.consumeContent();
         }
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值