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

//发送xml请求

URL url = new URL("http://127.0.0.1:8080/Test/sendXmlAndReturnXml.do");

String xml = "cccccc客户端请求的xml数据cccccccc";

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("bbbccc服务端返回响应xml数据,在客户端可以获取到");

}

//从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;

}

}

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2010-07-15 20:09

浏览 5103

评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值