通过request请求获取<xml>

使用io流完成request传参,获取<xml>,具体代码如下:

public Object getParameter(HttpServletRequest request, HttpServletResponse response){

request.setCharacterEncoding("UTF-8");//设置字符格式
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
response.setHeader("Access-Control-Allow-Origin", "*");
// achieve input stream
InputStream in = request.getInputStream();
ByteArrayOutputStream out = new ByteArrayOutputStream();
// length of string
byte[] buffer = new byte[1024];
int len = 0;
// achieve data from in
while ((len = in.read(buffer)) != -1) {
out.write(buffer, 0, len);
}
in.close();
out.close();

//获取流对象内容

String content = new String(out.toByteArray(), "utf-8");
//获取json对象

JSONObject jsonObject = JSONObject.parseObject(XmltoJsonUtil.xml2JSON(content));
//获取xml对象
JSONObject result_xml = jsonObject.getJSONObject("xml");
// 获取<xml>中某个对象具体的值
JSONArray return_code = result_xml.getJSONArray("return_code");
String code = return_code.get(0).toString();

System.out.println("code:"+code);

}

//<xml>转为json格式

public class XmltoJsonUtil {
public static String xml2JSON(String xml) {
JSONObject obj = new JSONObject();
try {
InputStream is = new ByteArrayInputStream(xml.getBytes("utf-8"));
SAXBuilder sb = new SAXBuilder();
Document doc = sb.build(is);
Element root = doc.getRootElement();
obj.put(root.getName(), iterateElement(root));
return obj.toString();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}

eg:输入的<xml>对象为:

<xml>
<return_code>SUCCESS</return_code>
<appid><![CDATA[wx2421b1c4370ec43b]]></appid>
<mch_id><![CDATA[10000100]]></mch_id>
<nonce_str><![CDATA[TeqClE3i0mvn3DrK]]></nonce_str>

</xml>

输出结果为:

code:SUCCESS

原文地址:https://www.cnblogs.com/qqzhulu/p/10371696.html

时间: 2024-10-13 23:06:11

通过request请求获取<xml>的相关文章

ajax请求获取xml数据结构

使用Ajax请求,获取xml数据结构,在IE10.11会出现错误: 请求xml文件为: 在IE 10以上浏览器中: IE9及以下浏览器返回: 查看文档,我们发现: 针对这种情况,我们需要对ajax请求进行重写,针对IE跟非IE使用不同的方式解析xml文档数据: demo 1: function $ajax(url, content, callback) { var xmlVer = ["MSXML2.XMLHTTP", "Microsoft.XMLHTTP"], x

常用Request对象获取请求信息

Request.ServerVariables(“REMOTE_ADDR”) ‘获取访问IPRequest.ServerVariables(“LOCAL_ADDR”) ‘同上Request.ServerVariables(“SERVER_NAME”) ‘获取服务器IPRequest.ServerVariables(“HTTP_REFERER”) ‘获取访问来源页面Request.ServerVariables(“OS”) ‘获取操作系统request.ServerVariables(“APPL_

ajax post 请求 ,java端使用 request.getParameter 获取不到数据问题

js端 $.ajax({ type:'POST', data:{a:1}, url:_this.apiUrl+url, dataType:'json',//使用jsonp方式请求 contentType:"application/json; charset=utf-8", json:"callback",//jsonp名 success:function(re){ }}); @PostMapping(value = "/queryProduct"

微信小程序正确的异步request请求,根据经纬度获取地理位置信息

微信小程序的所有request请求都是异步的,不支持同步.但是在请求时可能会耗费一定时间,这样的话在获取返回数据时可能方法还没有执行完就已经进行赋值操作了.我遇到的就是拿到的数据为undefined. 解决办法,使用回调函数,等操作完成后再更改原来的值. 贴代码:(这是根据经纬度获取地理位置的一个方法) function GetAddress(latitude, longtitude, callback, errorCallback) { var geturl = 'https://api.ma

测开之路一百二十六:flask之获取request请求数据

可以根据flask的request对象获取所有的请求信息 path = request.path # 获取请求地址method = request.method # 获取请求方法ip = request.remote_addr # 请求来源的ipform = request.form # 获取form表单的数据value = request.values # 获取查询字符串/表单数据headers = request.headers # 后区头部信息User_Agent = request.he

自动化接口测试平台:从excel读取数据,传递到request请求中获取不到参数问题

遇到一个问题,将入参的必填参数按照dict格式填入excel表格中,从excel读取数据传递到request请求一直获取不到参数 解决: 1.注意从excel中读取的数据格式为str,传递到request请求的参数格式要求为dict 2.需要将数据反序列化,有以下两种方法: request.post对于参数传入的格式有特殊要求:post请求是我们常说的提交表单,表单的数据内容就是post请求的参数,request实现post请求需设置请求参数data,数据格式 可以为字典.元组.列表和json格

jsp获取Request请求参数

方法一 在html或者JS代码里通过隐含变量param获取: ${param.name} 方法二 通过Request对象获取: <%String name = request.getParameter("name");%> 版权声明:本文为博主原创文章,未经博主允许不得转载.

通过http请求传递xml流和接收xml流的代码示例

通过http请求传递xml流和接收xml流的代码示例 //1.在servlet中post一个xml流:import java.io.OutputStreamWriter;import org.jdom.Document;import org.jdom.Document; public void doPost(HttpServletRequest request, HttpServletResponse response)    throws ServletException, IOExcepti

SSL 认证之后,request.getScheme()获取不到https的问题记录

通过浏览器输入https://www.xxx.com,request.getScheme()获取到的确实http而不是https 通过request.getRequestURL()拿到的也是http://www.xxx.com 分析原因,是因为用nginx+tomcat部署web服务,tomcat接受到的请求都是来自于nginx的http请求. request.getScheme() //总是 http,而不是实际的http或https request.isSecure() //总是false(