`
xp9800
  • 浏览: 36082 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

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

    博客分类:
  • java
阅读更多
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 java.net.URL;
import java.net.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="http://tempuri.org/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
0
1
分享到:
评论
1 楼 yanliyun 2013-12-13  
你好,这各方法参数能跟我说明下吗?

相关推荐

    SOAP xml解析

    SOAP解析,与一般的xml解析不一样,他中间存在报文,解析到就出错了,也就解析不下去,这里举了一个列子,(网络上找了好久都没找到我想要的列子,最后我自己根据例子做了整理做出来的),把数据组合成集合。...

    JAVA调用webservice并解析xml

    Java提供了DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming API for XML)等解析器来处理XML。DOM加载整个XML文档到内存,适合小型数据;SAX是事件驱动,只读且不需要全部加载;StAX允许...

    soap-build生成Soap接口请求报文

    3. 生成请求:根据业务需求,设置请求参数,利用工具生成实际的SOAP请求XML字符串。 4. 发送请求:将生成的XML字符串通过HTTP客户端发送到目标SOAP服务,获取响应。 5. 处理响应:解析返回的SOAP响应,进行进一步...

    java调用soap接口案例

    对于客户端,可以使用`javax.xml.soap`包中的`SOAPConnectionFactory`、`SOAPConnection`、`SOAPMessage`等类来构造和发送SOAP请求。 3. **构建SOAP请求**:首先,我们需要了解SOAP服务的WSDL(Web Service ...

    基于Servlet发送、接收SOAP消息的java源程序

    - 发送SOAP请求:Servlet可以使用`java.net.URLConnection`或Apache的 HttpClient库来构造和发送HTTP POST请求,其中请求体包含SOAP消息。 - 处理SOAP响应:接收到响应后,Servlet可以使用XML解析器解析响应体,...

    Java使用SOAP获取webservice实例解析

    在这个过程中,Java 程序需要使用到 SOAP 协议来发送请求和接收响应,实现对 Webservice 的调用。 首先,需要了解 Webservice 的基本概念。Webservice 是一种基于网络的软件系统,可以提供各种服务,如天气预报、...

    java发送SOAP报文

    Java发送SOAP报文是Web服务通信中的一个常见任务,它涉及到使用XML格式的数据进行网络通信。SOAP(Simple Object Access Protocol)是一种轻量级的、基于XML的协议,用于在Web上交换结构化和类型化的信息。本文将...

    拼接soap,判断soap是否连接成功,返回接口的信息,解析soap报文,解析后的soap转成实体

    本教程将围绕标题和描述中的关键知识点展开,包括如何拼接SOAP请求,判断SOAP连接成功,获取接口信息,解析SOAP响应报文,并将解析后的数据转换为Java实体。 首先,我们需要理解SOAP的基本结构。一个基本的SOAP消息...

    利用DOM4J解析SOAP的简单示例

    在实际应用中,解析SOAP消息通常结合网络请求,例如使用Apache HttpClient发送SOAP请求并接收响应,然后使用DOM4J解析响应内容。了解DOM4J库的其他功能,如XPath查询、命名空间处理等,可以帮助更高效地处理复杂SOAP...

    如何查看java代码编写的soap请求报文头信息

    要查看由Java代码编写的SOAP请求报文头信息,你需要了解几个关键概念和工具。首先,理解SOAP消息的基本结构至关重要。一个SOAP消息通常包含三个主要部分:头部(Header)、体(Body)以及可选的SOAP-envelop元素。...

    webservice 调用实例soap协议

    例如,在Java中,可以使用`javax.xml.soap`包中的`SOAPConnectionFactory`和`SOAPMessage`类来创建并发送SOAP请求。 3. **接收并解析SOAP响应**:Web服务执行操作后,会返回一个SOAP响应,同样也是XML格式。客户端...

    通过webservice提交xml数据以及soap协议的使用

    6. **调用服务**:通过客户端代理,发送SOAP请求到Web服务,并接收响应。代理类会自动处理网络通信和XML解析,暴露简单的API供开发者使用。 7. **处理响应**:接收到的SOAP响应也是一个XML文档,从中提取所需的数据...

    java+soap+webservice 调用模拟

    它可以发送自定义的SOAP请求并展示响应,帮助开发者快速验证服务的正确性。 8. **性能优化**:SOAP由于其XML格式,可能比RESTful API效率低。可以通过缓存、压缩和减少XML大小等方式来优化性能。 9. **安全性考虑*...

    soap协议请求与分析.rar_ Soap_SOAP java_WSDL_java soap_soap

    在Java中实现SOAP请求,通常会使用JAX-WS(Java API for XML Web Services)框架。以下是一个简单的SOAP请求示例: ```java import javax.jws.WebService; import javax.xml.ws.BindingProvider; import javax.xml....

    javax-xml-soap-1.6.0.jar

    7. **部署与使用**:将"javax-xml-soap-1.6.0.jar"添加到项目类路径中,就可以使用其中的API来构建和处理SOAP请求和响应。在Maven或Gradle项目中,可以通过添加对应的依赖来引入这个库。 总的来说,"javax-xml-soap...

    SOAP实例程序,实现Java发送SOAP信息.zip

    在提供的压缩包中,"SOAP实例程序,实现Java发送SOAP信息"可能是源代码文件,其中包含了一个完整的Java应用示例,演示了如何发送SOAP请求并处理响应。"1"可能是额外的文件或资源,如配置文件、依赖库或测试数据。...

    Android 基于 Retrofit2+Okhttp3 通过SOAP协议请求WebService.zip

    这里需要使用`@POST`注解指定SOAP请求的URL,并使用`@Body`注解传递SOAP请求的XML内容。 ```java public interface SoapService { @POST("your-soap-endpoint") Call<SoapResponse> soapRequest(@Body Soap...

    Android 基于 Retrofit2+Okhttp3 通过SOAP协议请求WebService

    // 创建SOAP请求XML String soapRequest = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsd=\...

    Soap—WebServer解析简单例子

    3. 发送请求:使用HttpTransportSE对象发送SOAP请求到服务器。这个过程包括设置HTTP头、序列化SOAP请求并发送。 4. 处理响应:接收到SOAP响应后,需要反序列化以获取结果。这通常涉及解析SOAP响应的XML结构。 四、...

    解析XML所需的jar dom.jar

    开发者可能会使用dom.jar来处理这些XML文档,验证WSDL,解析SOAP响应,或者构建新的SOAP请求。 在实际应用中,除了标准的Java DOM API,还有许多第三方库提供了更高级的功能和性能优化,比如Apache的Xerces和...

Global site tag (gtag.js) - Google Analytics