微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

把服务器返回来的XML文件翻译成java类

这个是在给国付宝服务器发送过去一个连接(带各种参数 你懂的。。),国付宝会自动返回一个XML树,把返回来的XML转换成java类 GopayWithdraw

前提是我用了httpClient PostMethod发送给国付宝的方式:

public static PostMethod getPostMethod(GopayWithdraw gopay) {
		PostMethod pMethod = new PostMethod(gopay.getGateWay());

		pMethod.addParameter("version",gopay.getVersion());
		pMethod.addParameter("tranCode",gopay.getTranCode());
		pMethod.addParameter("customerId",gopay.getCustomerId());
		pMethod.addParameter("merOrderNum",gopay.getMerOrderNum());
		pMethod.addParameter("tranAmt",gopay.getTranAmt());
		pMethod.addParameter("recvBankAcctName",gopay.getRecvBankAcctName());
		pMethod.addParameter("recvBankProvince",gopay.getRecvBankProvince());
		pMethod.addParameter("recvBankCity",gopay.getRecvBankCity());
		pMethod.addParameter("recvBankName",gopay.getRecvBankName());
		pMethod.addParameter("recvBankBranchName",gopay.getRecvBankBranchName());
		pMethod.addParameter("recvBankAcctNum",gopay.getRecvBankAcctNum());
		pMethod.addParameter("corpPersonFlag",gopay.getCorpPersonFlag());
		pMethod.addParameter("tranDateTime",gopay.getTranDateTime());
		pMethod.addParameter("description","");
		pMethod.addParameter("merchantEncode",gopay.getMerchantEncode());
		pMethod.addParameter("merURL",gopay.getMerURL());
		pMethod.addParameter("signValue",gopay.getSignValue());
		return pMethod;
	}
<pre name="code" class="java"> GopayWithdraw gopayWith = new GopayWithdraw();

 PostMethod pMethod=getPostMethod(gopayWith )
int statusCode = GopayWithdrawHttpClient.executeMethod(pMethod);
if (statusCode == HttpStatus.SC_OK) {
GopayWithdraw gopayWith =getGopayWithdraw(parser,pMethod);//该方法就是把XML转化成java类
return gopayWith //这个gopayWith 就是把服务器返回来的XML树转化成的Java实体类
}

 


public static GopayWithdraw getGopayWithdraw(SAXParser parser,PostMethod pMethod) {
		GopayWithdraw gopayWith = new GopayWithdraw();
		try {
			parser = SAXParserFactory.newInstance().newSAXParser();
			Digester digester = new Digester(parser);
			digester.setValidating(false);
			digester.addobjectCreate("GopayAPIResp",GopayWithdraw.class);
			digester.addSetProperties("GopayAPIResp");
			// digester.addCallMethod("GopayAPIResp/version","version",// 0);
			// digester.addCallMethod("GopayAPIResp/tranCode",// "tranCode",1);
			digester.addBeanPropertySetter("GopayAPIResp/version","version");
			digester.addBeanPropertySetter("GopayAPIResp/tranCode","tranCode");
			digester.addBeanPropertySetter("GopayAPIResp/customerId","customerId");
			digester.addBeanPropertySetter("GopayAPIResp/merOrderNum","merOrderNum");
			digester.addBeanPropertySetter("GopayAPIResp/merURL","merURL");
			digester.addBeanPropertySetter("GopayAPIResp/tranAmt","tranAmt");
			digester.addBeanPropertySetter("GopayAPIResp/recvBankAcctName","recvBankAcctName");
			digester.addBeanPropertySetter("GopayAPIResp/recvBankProvince","recvBankProvince");
			digester.addBeanPropertySetter("GopayAPIResp/recvBankCity","recvBankCity");
			digester.addBeanPropertySetter("GopayAPIResp/recvBankName","recvBankName");
			digester.addBeanPropertySetter("GopayAPIResp/recvBankBranchName","recvBankBranchName");
			digester.addBeanPropertySetter("GopayAPIResp/recvBankAcctNum","recvBankAcctNum");
			digester.addBeanPropertySetter("GopayAPIResp/corpPersonFlag","corpPersonFlag");
			digester.addBeanPropertySetter("GopayAPIResp/tranDateTime","tranDateTime");
			digester.addBeanPropertySetter("GopayAPIResp/description","description");
			digester.addBeanPropertySetter("GopayAPIResp/respCode","respCode");
			digester.addBeanPropertySetter("GopayAPIResp/msgExt","msgExt");
			digester.addBeanPropertySetter("GopayAPIResp/orderId","orderId");
			digester.addBeanPropertySetter("GopayAPIResp/feeAmt","feeAmt");
			digester.addBeanPropertySetter("GopayAPIResp/totalAmount","totalAmount");
			digester.addBeanPropertySetter("GopayAPIResp/SignValue","signValue");
			digester.addBeanPropertySetter("GopayAPIResp/ErrorCode","errorCode");
			digester.addBeanPropertySetter("GopayAPIResp/ErrorMsg","errorMsg");
			try {
				gopayWith = (GopayWithdraw) digester
						.parse(new ByteArrayInputStream(pMethod
								.getResponseBodyAsstring().getBytes()));
			} catch (IOException e) {
				// Todo Auto-generated catch block
				e.printstacktrace();
			}
		} catch (ParserConfigurationException e) {
			// Todo Auto-generated catch block
			e.printstacktrace();
		} catch (SAXException e) {
			// Todo Auto-generated catch block
			e.printstacktrace();
		}
		return gopayWith;
	}

原文地址:https://www.jb51.cc/xml/298083.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。