精华内容
下载资源
问答
  • 业务场景:用户发送下单请求,格式为xml格式,服务器接收数据完成下单,并返回结果给客户。请求格式:这段请求报文是xml格式的,在后台我们可以使用 javax.xml.bind.annotation 这个包格式化数据。比如:importjava....

    业务场景:用户发送下单请求,格式为xml格式,服务器接收数据完成下单,并返回结果给客户。

    请求格式:

    这段请求报文是xml格式的,在后台我们可以使用 javax.xml.bind.annotation 这个包格式化数据。

    比如:

    importjava.io.Serializable;importjavax.xml.bind.annotation.XmlAccessType;importjavax.xml.bind.annotation.XmlAccessorType;importjavax.xml.bind.annotation.XmlElement;importjavax.xml.bind.annotation.XmlRootElement;importorg.apache.commons.lang.builder.ToStringBuilder;importorg.apache.commons.lang.builder.ToStringStyle;importcom.juqitech.adapter.dto.ChannelDTO;

    @XmlRootElement(name= "request")

    @XmlAccessorType(XmlAccessType.NONE)public class RequestDTO implementsSerializable {private static final long serialVersionUID = -1;

    @XmlElementprivateRequestHeaderDTO head;

    @XmlElementprivateRequestBodyDTO body;publicRequestHeaderDTO getHead() {returnhead;

    }public voidsetHead(RequestHeaderDTO head) {this.head =head;

    }publicRequestBodyDTO getBody() {returnbody;

    }public voidsetBody(RequestBodyDTO body) {this.body =body;

    }

    }

    @XmlRootElement(name = "request")可以定义在类上,代表根节点

    @XmlAccessorType(XmlAccessType.FIELD)

    表示使用这个类中的 private 非静态字段作为 XML 的序列化的属性或者元素。这里还可以选择属性,也就是使用 set/get 方法来序列化属性或者元素。

    关键在于在请求中有个extendInfos的array数组,一般我们都会用list来表示,所以在RequestBodyDTO中可以这么写:

    importjava.io.Serializable;importjavax.xml.bind.annotation.XmlAccessType;importjavax.xml.bind.annotation.XmlAccessorType;importjavax.xml.bind.annotation.XmlElement;importjavax.xml.bind.annotation.XmlRootElement;importorg.apache.commons.lang.builder.ToStringBuilder;importorg.apache.commons.lang.builder.ToStringStyle;importcom.juqitech.adapter.dto.ChannelDTO;

    @XmlRootElement(name= "body")

    @XmlAccessorType(XmlAccessType.NONE)public class RequestBodyDTO implementsSerializable {private static final long serialVersionUID = -1;//....前面的属性省略

    @XmlElementWrapper(name="extendInfos")

    @XmlElement(name="extendInfo")private ListextendInfos;//。。其他的省略

    }

    @XmlRootElement(name= "extendInfo")

    @XmlAccessorType(XmlAccessType.NONE)public classextendInfo{

    @XmlElementprivateString city;

    @XmlElementprivateString province;

    @XmlElementprivateString district;//省略

    }

    @XmlElementWrapper 这个注释用来在外面在包一层,用于处理list集合

    原文:http://www.cnblogs.com/wangzun/p/7356463.html

    展开全文
  • 业务场景:用户发送下单请求,格式为xml格式,服务器接收数据完成下单,并返回结果给客户。请求格式:这段请求报文是xml格式的,在后台我们可以使用 javax.xml.bind.annotation 这个包格式化数据。我们可以在做数据...

    业务场景:用户发送下单请求,格式为xml格式,服务器接收数据完成下单,并返回结果给客户。

    请求格式:

    这段请求报文是xml格式的,在后台我们可以使用 javax.xml.bind.annotation 这个包格式化数据。

    我们可以在做数据对应的dto是用@XmlElement注释标注对应节点

    比如:

    importjava.io.Serializable;importjavax.xml.bind.annotation.XmlAccessType;importjavax.xml.bind.annotation.XmlAccessorType;importjavax.xml.bind.annotation.XmlElement;importjavax.xml.bind.annotation.XmlRootElement;importorg.apache.commons.lang.builder.ToStringBuilder;importorg.apache.commons.lang.builder.ToStringStyle;importcom.juqitech.adapter.dto.ChannelDTO;

    @XmlRootElement(name= "request")

    @XmlAccessorType(XmlAccessType.NONE)public class RequestDTO implementsSerializable {private static final long serialVersionUID = -1;

    @XmlElementprivateRequestHeaderDTO head;

    @XmlElementprivateRequestBodyDTO body;publicRequestHeaderDTO getHead() {returnhead;

    }public voidsetHead(RequestHeaderDTO head) {this.head =head;

    }publicRequestBodyDTO getBody() {returnbody;

    }public voidsetBody(RequestBodyDTO body) {this.body =body;

    }

    }

    @XmlRootElement(name = "request")可以定义在类上,代表根节点

    @XmlAccessorType(XmlAccessType.FIELD)

    表示使用这个类中的 private 非静态字段作为 XML 的序列化的属性或者元素。这里还可以选择属性,也就是使用 set/get 方法来序列化属性或者元素。

    关键在于在请求中有个extendInfos的array数组,一般我们都会用list来表示,所以在RequestBodyDTO中可以这么写:

    importjava.io.Serializable;importjavax.xml.bind.annotation.XmlAccessType;importjavax.xml.bind.annotation.XmlAccessorType;importjavax.xml.bind.annotation.XmlElement;importjavax.xml.bind.annotation.XmlRootElement;importorg.apache.commons.lang.builder.ToStringBuilder;importorg.apache.commons.lang.builder.ToStringStyle;importcom.juqitech.adapter.dto.ChannelDTO;

    @XmlRootElement(name= "body")

    @XmlAccessorType(XmlAccessType.NONE)public class RequestBodyDTO implementsSerializable {private static final long serialVersionUID = -1;//....前面的属性省略

    @XmlElementWrapper(name="extendInfos")

    @XmlElement(name="extendInfo")private ListextendInfos;//。。其他的省略

    }

    @XmlRootElement(name= "extendInfo")

    @XmlAccessorType(XmlAccessType.NONE)public classextendInfo{

    @XmlElementprivateString city;

    @XmlElementprivateString province;

    @XmlElementprivateString district;//省略

    }

    @XmlElementWrapper 这个注释用来在外面在包一层,用于处理list集合

    展开全文
  • 在servlet中post一个xml流:import java.io.OutputStreamWriter;import org.jdom.Document;import org.jdom.Document;public void doPost(HttpServletRequest request, HttpServletResponse response)throws ...

    //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, IOException {

    //do somthing...

    response.setContentType("application/xml");

    Document doc = createDoc();

    String strdoc = new XMLOutputter().outputString(doc);

    OutputStreamWriter out = new OutputStreamWriter(response

    .getOutputStream(), "UTF-8");

    out.write(strdoc);

    out.flush();

    out.close();

    //do somthing...

    }

    /***

    *将要封装的数据,封装为xml文件的Document格式

    */

    public Document createDoc() {

    Document doc = null;

    Element root;

    Element viewentry;

    Element entry;

    List list = getData();

    try {

    XMLOutputter docWriter = new XMLOutputter(" ", true);

    docWriter.setEncoding("UTF-8");

    root = new Element("your_element_name");

    doc = new Document(root);

    root = doc.getRootElement();

    if (list == null || list.size() == 0) {

    return doc;

    }

    Iterator it = list.iterator();

    while (it.hasNext()) {

    Map colMap = (Map) it.next();

    viewentry = new Element("document");

    entry = new Element("author");

    entry.setText(colMap.get("userid").toString());

    viewentry.addContent(entry);

    //do other entry in this way

    root.addContent(viewentry);

    }

    } catch (Exception e) {

    e.printStackTrace();

    }

    return doc;

    }

    //2.根据接收的url,从其中获取xml流生成xml文件

    import org.dom4j.Document;

    import org.dom4j.DocumentException;

    import org.dom4j.io.SAXReader;

    import sun.net.www.protocol.http.HttpURLConnection;

    public static Document getDocument(String url){

    Document doc = null;

    HttpURLConnection conn = null;

    InputStream ins = null;

    SAXReader reader = null;

    try{

    HttpTimeoutHandler hth = new HttpTimeoutHandler(600000);

    URL conURL = new URL(null,url,hth);

    conn = (HttpURLConnection)conURL.openConnection();

    conn.setDoInput(true);

    conn.setDoOutput(true);

    conn.setUseCaches(false);

    ins = conn.getInputStream();

    reader =new SAXReader();

    doc= reader.read(ins);

    ins.close();

    conn.disconnect();

    }catch (MalformedURLException e) {

    e.printStackTrace();

    } catch (IOException e) {

    e.printStackTrace();

    } catch (DocumentException e) {

    e.printStackTrace();

    }catch(Exception e){

    e.printStackTrace();

    }finally {

    try {

    if (ins != null) {

    ins.close();

    ins = null;

    }

    } catch (IOException e1) {

    e1.printStackTrace();

    }

    try {

    if (conn != null) {

    conn.disconnect();

    conn = null;

    }

    } catch (Exception e2) {

    e2.printStackTrace();

    }

    }

    return doc;

    }

    3.//处理url超时限制

    /***

    HttpTimeoutHandler.java

    */

    import java.net.*;

    import java.io.IOException;

    public class HttpTimeoutHandler extends sun.net.www.protocol.http.Handler {

    int intTimeoutVal;

    HttpURLConnectionTimeout fHUCT;

    public HttpTimeoutHandler(int iT) {

    intTimeoutVal = iT;

    }

    protected java.net.URLConnection openConnection(URL u) throws IOException {

    return fHUCT = new HttpURLConnectionTimeout(u, this, intTimeoutVal);

    }

    String GetProxy() {

    return proxy;

    } // breaking encapsulation

    int GetProxyPort() {

    return proxyPort;

    } // breaking encapsulation

    public void Close() throws Exception {

    fHUCT.Close();

    }

    public Socket GetSocket() {

    return fHUCT.GetSocket();

    }

    }

    展开全文
  • 工程架构: SpringBoot 2.2.1.RELEASE通过RestTemplate 发起Http请求,并接收JSON格式的返回值和XML返回值;GET请求带参传递(返回JSON格式):通过{}为URL 注入参数,返回值用String接收在进行JSON转对象处理public ...

    工程架构: SpringBoot 2.2.1.RELEASE

    通过RestTemplate 发起Http请求,并接收JSON格式的返回值和XML返回值;

    GET请求带参传递(返回JSON格式):

    通过{}为URL 注入参数,返回值用String接收在进行JSON转对象处理

    public XiDaoHttpResult getXiDaoData() {

    RestTemplate restTemplate = new RestTemplate();

    String url = "http://xxxxx:xxxx?end_date_time={end_date_time}&start_date_time={start_date_time}";

    HttpHeaders headers = new HttpHeaders();

    MediaType type = MediaType.parseMediaType("application/json; charset=GBK");

    headers.setContentType(type);

    Mapparam = new HashMap<>();

    // 设置开始时间和结束时间 开始时间为当天的0点,结束时间为当前时间

    String startTime = DateUtil.DateFormatting("yyyy-MM-dd HH:mm:ss", DateUtil.initDateByDay());

    String endTime = DateUtil.DateFormatting("yyyy-MM-dd HH:mm:ss", new Date());

    param.put("end_date_time", endTime);

    param.put("start_date_time", startTime);

    String forObject = restTemplate.getForObject(url, String.class, param);

    XiDaoHttpResult xiDaoHttpResult = JSONObject.parseObject(forObject.toLowerCase(), XiDaoHttpResult.class);

    return xiDaoHttpResult;

    }

    GET请求带参传递(返回XML格式):

    通过{}为URL 注入参数,返回值用String接收在进行字符串转XML转对象处理

    public String getTianYaHaiJiaoData() {

    RestTemplate restTemplate = new RestTemplate();

    String startTime = DateUtil.DateFormatting("yyyy-MM-dd HH:mm:ss", DateUtil.initDateByDay());

    String endTime = DateUtil.DateFormatting("yyyy-MM-dd HH:mm:ss", new Date());

    Mapparam = new HashMap<>();

    param.put("startDate", startTime);

    param.put("endDate", endTime);

    String mySign = SignUtil.buildMysign(param, KEY);

    param.put("sign", mySign);

    return restTemplate.getForObject(URL, String.class, param);

    }

    /**

    * 将XML字符串转为对象

    *

    * @param xml

    * @return com.syiti.dev.sssy.entity.TianYaHaiJiaoHttpResult

    * @author LinYoufeng

    * @date 16:14 2019/11/26

    **/

    public TianYaHaiJiaoHttpResult parseXmlStr(String xml) {

    TianYaHaiJiaoHttpResult tianYaHaiJiaoHttpResult = new TianYaHaiJiaoHttpResult();

    // 将字符串转化为XML文档对象

    Document document = null;

    try {

    document = DocumentHelper.parseText(xml);

    } catch (DocumentException e) {

    e.printStackTrace();

    }

    // 获得文档的根节点

    Element root = document.getRootElement();

    // 遍历根节点下所有子节点

    Iterator> iter = root.elementIterator();

    while (iter.hasNext()) {

    Element ele = (Element) iter.next();

    if ("code".equals(ele.getName())) {

    tianYaHaiJiaoHttpResult.setCode(Integer.valueOf(ele.getText()));

    }

    if ("saleTicketPersonSum".equals(ele.getName())) {

    tianYaHaiJiaoHttpResult.setSaleTicketPersonSum(Integer.valueOf(ele.getText()));

    }

    if ("checkTicketPersonSum".equals(ele.getName())) {

    tianYaHaiJiaoHttpResult.setCheckTicketPersonSum(Integer.valueOf(ele.getText()));

    }

    }

    return tianYaHaiJiaoHttpResult;

    }

    展开全文
  • 在servlet中post一个xml流:import java.io.OutputStreamWriter;import org.jdom.Document;import org.jdom.Document;public void doPost(HttpServletRequest request, HttpServletResponse response)throws ...
  • 1.类封装对应的xml数据。添加注解@XmlRootElement,标识封装xml数据,否则为json数据。类上再添加@XmlAccessorType(XmlAccessType.FIELD)代表@XmlElement...发送xml请求消息体:yaoct123456对应响应消息体封装类:@X...
  • ChannelDistributor.xml 内容如下:yisouabcd123410010000001).HttpClient发送Post请求,内容格式为xml,并获取响应内容import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io....
  • java后台接收form表单/json/xml请求数据

    千次阅读 2019-10-29 11:21:46
    这儿只写两个常用的三种接收方式 我们用得最多的应该属于form表单提交,比如页面代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>Insert title here</...
  • springmvc接收xml数据格式请求详解

    万次阅读 2017-06-29 16:07:13
    springmvc接收xml数据格式请求详解 本人在网上找了好久还是没有找到这个解决方案。以下是本人的解决方法。 接收的格式数据: <?xml version="1.0" encoding="UTF-8"?> <xml> <id>1 <name>xxl <age>24 </xml> ...
  • 问题在对接银行过程中,银行回调时请求参数格式为xml,要求返回格式也为xml(CDATA包裹),利用SpringMVC该怎么处理。测试xml格式参数为:提供接受参数的对象@Data //lombok注解,无需手动添加getter/setter@...
  • 本人就写了个接口,接收xml数据,解析xml将数据保存到数据库即可; 下面是本人对xml解析 首先定义个接口,公司老旧struts2框架,凑合看吧 public String createMsgInfo() throws IOException, DocumentExce.
  • 1.http请求 1.http请求类型: 分为post和get请求: ...java代码实现:使用java自带的URLConnection实现get请求 //相应包导入 import java.io.BufferedReader; import java.io.IOException; impor...
  • import java.net.URL;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.xml.namespace.QName;import javax.xml.rpc.ParameterMode;import org.apache...
  • } } // 下面的为固定代码---------可以完成javaXML的写,改等操作 public static void saveDocument(Document document, FileOutputStream xmlFile) throws IOException { Writer osWrite = new ...
  • 通过RestTemplate 发起Http请求,并接收JSON格式的返回值和XML返回值; GET请求带参传递(返回JSON格式): 通过{}为URL 注入参数,返回值用String接收在进行JSON转对象处理 public XiDaoHttpResult getXiDaoData() ...
  • 通过http请求传递xml流和接收xml流的代码示例 //1.在servlet中post一个xml流: import java.io.OutputStreamWriter; import org.jdom.Document; import org.jdom.Document; public void doPost...
  • 业务场景:用户发送下单请求,格式为xml格式,服务器接收数据完成下单,并返回结果给客户。 请求格式: <request> <head> <sign></sign> <time></time> <msg>...
  • package ...import java.io.InputStream;import java.io.OutputStream;import java.io.OutputStreamWriter;import java.net.URL;import java.net.URLConnection;import javax.xml.parsers.DocumentBui...
  • import java.net.URL; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.xml.nam...
  • 推荐文章@RequestBody可以将客户端请求报文体通过数据类型转换后绑定为mvc控制器方法参数,@RequestBody有一个datatype属性,用来指定请求报文的数据格式,目前支持json,xml,String三种类型。@RequestBody的使用...
  • 打开tomcat安装目录中conf目录下的server.xml配置文件; 2、修改配置 找到如下配置的地方: &lt;Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" ...
  • 1.请求参数为json格式 1.pom.xml文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:...
  • POST不同提交方式对应的Content-Type,及java服务器接收参数方式注:本博客参考了网上的文章结合自己工作总结后所写,主要用于记录自己工作所得,如有错误请批评指正.简介:Content-Type(MediaType),即是Internet Media ...
  • 需要点击下载知行EDI系统以及具有预配置的端口,用于验证通过公开的API端点接收到的cXML请求,提取接收到的订单并将它们存储在本地SQLite数据库中。下载示例工程整体流程的核心元素由以下端口组成:API 端口:允许您...
  • 关于跨域传输XML数据,由于刚接触到,碰到了许多问题。这里把一些相关方法记录下来,也给大家提供一些参考(新手适用,高手请...(用于别人请求自己的接口,接收请求数据并返回数据) 下面是大致实现代码: Client: p

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 733
精华内容 293
关键字:

java接收xml请求

java 订阅