我们都知道从http的请求中可以通过 request.getParameter("someParam")来取得 get方法提交的参数值,那么post请求中的body(如xml,json等格式)如果取得呢?
private String getRequestBody(final HttpServletRequest request) { String charset = request.getCharacterEncoding(); if (charset == null) { charset = DEFAULT_ENCODE; } String str, wholeStr; try { BufferedReader br = request.getReader(); wholeStr = ""; while((str = br.readLine()) != null){ wholeStr += str; } return wholeStr; } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
XML格式的String 类型与java对象转换类
import java.io.StringReader; import java.io.StringWriter; import java.util.Collection; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBElement; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; import javax.xml.bind.Unmarshaller; import javax.xml.bind.annotation.XmlAnyElement; import javax.xml.namespace.QName; import org.apache.commons.lang.StringUtils; /** * 使用Jaxb2.0实现XML<->Java Object的Binder. * * 特别支持Root对象是List的情形. * * @author */ public class JaxbUtil { // 多线程安全的Context. private JAXBContext jaxbContext; /** * @param types * 所有需要序列化的Root对象的类型. */ public JaxbUtil(Class<?>... types) { try { jaxbContext = JAXBContext.newInstance(types); } catch (JAXBException e) { throw new RuntimeException(e); } } /** * Java Object->Xml. */ public String toXml(Object root, String encoding) { try { StringWriter writer = new StringWriter(); createMarshaller(encoding).marshal(root, writer); return writer.toString(); } catch (JAXBException e) { throw new RuntimeException(e); } } /** * Java Object->Xml, 特别支持对Root Element是Collection的情形. */ @SuppressWarnings("unchecked") public String toXml(Collection root, String rootName, String encoding) { try { CollectionWrapper wrapper = new CollectionWrapper(); wrapper.collection = root; JAXBElement<CollectionWrapper> wrapperElement = new JAXBElement<CollectionWrapper>( new QName(rootName), CollectionWrapper.class, wrapper); StringWriter writer = new StringWriter(); createMarshaller(encoding).marshal(wrapperElement, writer); return writer.toString(); } catch (JAXBException e) { throw new RuntimeException(e); } } /** * Xml->Java Object. */ @SuppressWarnings("unchecked") public <T> T fromXml(String xml) { try { StringReader reader = new StringReader(xml); return (T) createUnmarshaller().unmarshal(reader); } catch (JAXBException e) { throw new RuntimeException(e); } } /** * Xml->Java Object, 支持大小写敏感或不敏感. */ @SuppressWarnings("unchecked") public <T> T fromXml(String xml, boolean caseSensitive) { try { String fromXml = xml; if (!caseSensitive) fromXml = xml.toLowerCase(); StringReader reader = new StringReader(fromXml); return (T) createUnmarshaller().unmarshal(reader); } catch (JAXBException e) { throw new RuntimeException(e); } } /** * 创建Marshaller, 设定encoding(可为Null). */ public Marshaller createMarshaller(String encoding) { try { Marshaller marshaller = jaxbContext.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); if (StringUtils.isNotBlank(encoding)) { marshaller.setProperty(Marshaller.JAXB_ENCODING, encoding); } return marshaller; } catch (JAXBException e) { throw new RuntimeException(e); } } /** * 创建UnMarshaller. */ public Unmarshaller createUnmarshaller() { try { return jaxbContext.createUnmarshaller(); } catch (JAXBException e) { throw new RuntimeException(e); } } /** * 封装Root Element 是 Collection的情况. */ public static class CollectionWrapper { @SuppressWarnings("unchecked") @XmlAnyElement protected Collection collection; } }
@Override public AuibInsuranceCallback formatCallBackData(String source, String sign) { if(this.checkCallbackInfo(source, sign)){ JaxbUtil resultBinder = new JaxbUtil(AuibInsuranceCallback.class); AuibInsuranceCallback auibInsuranceCallback = resultBinder.fromXml(source); return auibInsuranceCallback; }else{ return null; } }
相关推荐
web服务的ajax请求数据直接调用javaDAO类返回JSON数据。取值方便。快捷
实现了别的服务器通过Http协议接口推送到自己的服务器包体(body)接收代码的实现过程,我这里是用的.net的一般处理程序做的Http接口,调用时候无需定义参数,发布后访问文件全路径就可以获取对方传过来的包体全部...
HTTP POST 请求示例 { "username": "Alice", "password": "123456", "email": "alice@gmail.com" } 请求参数 参数 类型 是否必须 取值范围 说明 username String Y 2-64个字符 用户名(昵称) password String Y...
1、传值:index下标传值、页面navigator传值 (此图片来源于网络,如有侵权,请联系删除! )(此图片来源于网络,如有侵权,请联系删除! )(此图片来源于网络,如有侵权,请联系删除! )(此图片来源于网络,如有侵权,请...
主要是通过post请求中使用了enctype="multipart/form-data"上传文件,并且能够解析出input文本框中的name属性值以及其value.通过对Http 头文件信息解析以及request流的解析得到参数信息以及文件内容,并对文件进行...
取值: 状态码 名称 描述 0 未初始化 默认状态,XMLHttpRequest刚刚被创建 1 打开 调用了对象的open方法,但还没有调用send. 准备好要请求的服务器地址,但还没请求。 2 请求 调用了send方法。已经向服务器...
3.2.post请求 传json格式,需要使用json传参 传表单格式,需要使用data传参 3.3.文件上传:使用files传参 4.接口关联 多种提取方式(提取多个值): 1.正则表达式和jsonpath表达式提取 extract: access_token:...
1、AJAX初步认识 AJAX的全称... readyState属性请求的状态有5个可取值0=未初始化,1=正在加载,2=以加载,3=交互中,4=完成 responseText属性器的响应,表示为一个串 reponseXML属性器的响应,表示为XML
主要介绍了.net core在服务器端获取api传递的参数过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
复制代码 代码如下: 1,Content- Type取值为application/x-www-form-urlencoded时,php会将http请求body相应数据会填入到数组$_POST,填入到$_POST数组中的数据是进行urldecode()解析的结果。(其实,除了该Content...
b)@HTTP:标注在需要被请求的方法上,value属性值为请求时的方法名,supportMethod属性值为请求类型,默认支持get和post两种,兼容RquestMapping c)@ReportParam:标注在需要注入方法的参数上,继承至ReportRequest的...
主要有表单的验证,错误信息的提示,form表单的取值,get / post 请求 ,反馈交互提示框,页面跳转 ... 这章介绍小程序的登录注册页面。主要有表单的验证,错误信息的提示,form表单的取值,get / post ...
ThinkPHP的I方法是众多单字母函数中的新成员,其命名来自于英文Input(输入),主要用于更加方便和安全的获取系统输入变量,可以用于任何地方,用法格式如下: I(‘变量类型.变量名’,[‘默认值’],[‘过滤方法’]) ...
整个web都是基于一种基本的客户端/服务器架构,该架构可以归纳如下:一个客户端(通常是Web浏览器)使用HTTP协议发送一个请求给服务器(通常是web服务器程序,譬如Apache,Nginx,IIS,Tomcat等等),而服务器则以相同的...
${param}表示返回请求参数中单个字符串的值. ${paramValues}表示返回请求参数的一组 值.pageScope表示页面范围的变量.requestScope表示请求对象的变量. sessionScope表示会话 范围内的变量.applicationScope...
1、提交用户请求 (UA : User Agent) 2、作为HTML 以及 脚本执行的 解释器 3、以图形化的方式显示web页面 2、主要浏览器产品 1、Microsoft Internet Explorer (IE) 2、Mozilla Firefox 3、Google Chrome 4、...
通过在表单中加入一个隐藏域来提交到服务器端,这种方式的好处是可以在客户端加入一些自己想要加入的参数,以便得到相应的值。 客户端代码: Java代码 <input type=”hidden” name=”id” value=””/> ...
主要有表单的验证,错误信息的提示,form表单的取值,get / post 请求 ,反馈交互提示框,页面跳转 以及 页面UI。 效果图: (此图片来源于网络,如有侵权,请联系删除! ) 注册页面:基本内容有账号,密码,确认密码...
- **method**:请求方式(目前只支持GET,POST) - **headers**:请求头,格式为 {"key","value"} - **cookies**:Cookies就是Cookies啦,格式为 {"key":"value"} - **para -------- 该资源内项目源码是个人的毕设,代码都...
post请求测试文件:test2/post.html vue初探:test2/helloVue.html,test2/helloVue2.html input 和 textarea 元素中使用 v-model 实现双向数据绑定:test2/inputAndtextarea.html 两个按钮用于切换不同的列表布局:...