java发送Http请求传送xml数据,并返回xml数据

客户端发送请求、以及处理服务端响应代码为:
//发送xml请求
URL url = new URL("http://127.0.0.1:8080/Test/sendXmlAndReturnXml.do");
String xml = "<aaa><ddd>cccccc客户端请求的xml数据cccccccc</ddd></aaa>";
URLConnection conn = null;
conn = url.openConnection();
conn.setUseCaches(false);
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setRequestProperty("Content-Length", Integer.toString(xml.length()));
conn.setRequestProperty("Content-Type", "text/xml; charset=utf-8");
OutputStream ops = conn.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(ops, "GBK");
osw.write(xml);
osw.flush();
osw.close();

//发送成功后,获取服务器的响应xml串:
StringBuffer sb = new StringBuffer();
String line = "";
InputStream is = conn.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));//三层包装
while ((line = br.readLine()) != null) {
sb.append(line+ "\r\n");
}
System.out.println(sb.toString());

服务端代码为:
@Controller
public class TestXMLAction {
@RequestMapping("/sendXmlAndReturnXml.do")
public void sendXmlAndReturnXml(HttpServletRequest request, HttpServletResponse response) throws IOException{
//获取请求的xml
System.out.println("请求的xml数据为:\n" + getXmlFromRequest(request));
//服务端响应xml数据
response.getWriter().print("<aaa><ddd>bbbccc服务端返回响应xml数据,在客户端可以获取到</ddd></aaa>");
}

//从HTTP请求中取出请求的XML
private String getXmlFromRequest(HttpServletRequest request)throws IOException {
String reqXml = "";
reqXml = request.getQueryString(); //GET请求
if (StringUtils.isBlank(reqXml)) { //POST请求
BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream()));
String line = null;
StringBuilder sb = new StringBuilder();
while ((line = br.readLine()) != null) {
sb.append(line);
}
br.close();
reqXml = sb.toString();
}
return reqXml;
}
}
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值