获取http中的XML数据

来源:互联网 发布:玩游戏的时候网络优先 编辑:程序博客网 时间:2024/06/06 21:05
<span style="font-size:14px;">package com.gj.logs.dmrsync;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.UnsupportedEncodingException;import java.net.URLEncoder;import java.util.Enumeration;import java.util.HashMap;import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.apache.log4j.Logger;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.SAXReader;public class DataUtils {public static Logger logger = Logger.getLogger("dmlog");public static Logger debuglogger = Logger.getLogger("dmdebuglog");public static String getDataFromRequst(HttpServletRequest request) {try {InputStream is = request.getInputStream();byte[] data = new byte[10240];int len = 0;ByteArrayOutputStream baos = new ByteArrayOutputStream();while ((len = is.read(data)) != -1) {baos.write(data, 0, len);}baos.close();baos.flush();is.close();if (baos.size() > 0) {return baos.toString();}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}return null;}public static Map<String, String> getHeadList(HttpServletRequest request) {Map<String, String> map = new HashMap<String, String>();Enumeration<String> list = request.getHeaderNames();while (list.hasMoreElements()) {String key = list.nextElement();if (key != null) {String value = request.getHeader(key);map.put(key, value);}}return map;}/* * <?xml version="1.0" * encoding="UTF-8"?><Request><MsgType>ChargedNotifyReq</MsgType><TradeId> * 922317EA18E151EC</TradeId><AppId>300000000424</AppId><ProgramId>2803</ProgramId><ApData>0123456789abcdef</ApData><ExData>0123456789abcdef</ExData><ChannelId></ChannelId><SubsId>113110124168077</SubsId><Cost>100</Cost><ChargeTime>20140827102421</ChargeTime><ChargeType>102</ChargeType></Request> */public static MO getDataFromXml(String data) {MO mo = new MO();try {SAXReader reader = new SAXReader();ByteArrayInputStream bais = new ByteArrayInputStream(data.getBytes());Document document = reader.read(bais);Element root = document.getRootElement();Element msgtype = root.element("MsgType");mo.setMsgtype(msgtype.getTextTrim());Element tradeid = root.element("TradeId");mo.setTradeid(tradeid.getTextTrim());Element appid = root.element("AppId");mo.setAppid(appid.getTextTrim());Element programid = root.element("ProgramId");mo.setProgramid(programid.getTextTrim());Element apdata = root.element("ApData");mo.setApdata(apdata.getTextTrim());Element exdata = root.element("ExData");mo.setExdata(exdata.getTextTrim());Element channelid = root.element("ChannelId");mo.setChannelid(channelid.getTextTrim());Element subsid = root.element("SubsId");mo.setSubsid(subsid.getTextTrim());Element cost = root.element("Cost");mo.setCost(cost.getTextTrim());Element chargetime = root.element("ChargeTime");mo.setChargetime(chargetime.getTextTrim());Element chargetype = root.element("ChargeType");mo.setChargetype(chargetype.getTextTrim());} catch (DocumentException e) {// TODO Auto-generated catch blocke.printStackTrace();}return mo;}public static void rsync(final String url, final String data) {new Thread(new Runnable() {@Overridepublic void run() {try {if (url != null && data != null) {SimpleUrlConnection conn = new SimpleUrlConnection(url);String endata = URLEncoder.encode(data, "utf-8");conn.addGetPar("data", endata);int status = conn.connect();debuglogger.info(url+"|"+status+"|"+data);}} catch (UnsupportedEncodingException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}).start();}/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubString data = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Request><MsgType>ChargedNotifyReq</MsgType><TradeId>922317EA18E151EC</TradeId><AppId>300000000424</AppId><ProgramId>2803</ProgramId><ApData>0123456789abcdef</ApData><ExData>0123456789abcdef</ExData><ChannelId></ChannelId><SubsId>113110124168077</SubsId><Cost>100</Cost><ChargeTime>20140827102421</ChargeTime><ChargeType>102</ChargeType></Request>";//String log = getDataFromXml(data);//System.out.println(log);}}</span>

0 0
原创粉丝点击