糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > java soap 解析 java 解析soap

java soap 解析 java 解析soap

时间:2023-03-12 19:13:11

相关推荐

java soap 解析 java 解析soap

场景:运用java发送和解析soap请求xml

使用java发送和解析soap请求xml

ReceSoap.java:

package com.lmd.servlet;

import java.io.InputStream;

import org.dom4j.Document;

import org.dom4j.DocumentException;

import org.dom4j.DocumentHelper;

import org.dom4j.Element;

import org.dom4j.VisitorSupport;

import org.dom4j.io.SAXReader;

/**

* 解析soap格式的xml

*

* @author xp9800

*/

public class ReceSoap extends VisitorSupport {

String op = "";

Document doc1 = null;

@Override

public void visit(Element node) {

Document doc = null;

if (op.equals(node.getName())) {

try {

doc = DocumentHelper.parseText(node.getText());// str to xml

} catch (DocumentException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

// 在这里返回xml

this.doc1 = doc;

}

}

public static void main(String[] args) throws DocumentException {//测试

SAXReader reader = new SAXReader();

Document doc = reader.read("WebRoot/App/test3.xml");

//System.out.println(doc.asXML());

ReceSoap t = new ReceSoap();

t.op = "StrXml";

//System.out.println("doc1:" + t.doc1);

doc.accept(t);

if(t.doc1 != null)

System.out.println("reslut::"+doc.asXML());

else

System.out.println("reslut:: NULL");

//System.out.println("doc1:" + t.doc1.asXML());

}

public static Document openXmlDocument(InputStream in) {

Document resDoc = null;

SAXReader reader = new SAXReader();

try {

return reader.read(in);

} catch (DocumentException e) {

e.printStackTrace();

}

return resDoc;

}

}

SendSoap .java:

package com.lmd.servlet;

import java.io.InputStream;

import java.io.OutputStream;

import java.io.OutputStreamWriter;

import .URL;

import .URLConnection;

import org.dom4j.Document;

import org.dom4j.DocumentException;

import org.dom4j.io.SAXReader;

/**

* 发送soap格式的xml请求

*

* @author xp9800

*/

public class SendSoap {

public Document send(String url1, String SOAPAction, String soap) {

// TODO Auto-generated method stub

Document reqDoc = null;

try {

URL url = new URL(url1);

URLConnection conn = url.openConnection();

conn.setUseCaches(false);

conn.setDoInput(true);

conn.setDoOutput(true);

// conn.setRequestProperty("Content-Length",

// Integer.toString(soap.length()));

conn.setRequestProperty("Content-Type", "text/xml; charset=utf-8");

conn.setRequestProperty("SOAPAction", SOAPAction);

OutputStream os = conn.getOutputStream();

OutputStreamWriter osw = new OutputStreamWriter(os, "utf-8");

osw.write(soap);

osw.flush();

osw.close();

InputStream is = conn.getInputStream();

reqDoc = openXmlDocument(is);

} catch (Exception e) {

e.printStackTrace();

return reqDoc;

}

return reqDoc;

}

/**

* 从InputStream中读取Document对象

*

* @param in

* @return

*/

public static Document openXmlDocument(InputStream in) {

Document resDoc = null;

SAXReader reader = new SAXReader();

try {

return reader.read(in);

} catch (DocumentException e) {

e.printStackTrace();

}

return resDoc;

}

}

使用方法:

SendSoap soap = new SendSoap();

String soapAction="/scgjGetOutAcceptDealInfo";

Document soapResDoc = soap.send(url,soapAction,soapxml);// 得到返回的soap xml

ReceSoap t = new ReceSoap();

t.op = "StrXml";

soapResDoc.accept(t);

soapResDoc = t.doc1; // 得到解析soap中的result xml

如果觉得《java soap 解析 java 解析soap》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。