`

Java 访问 .net WebService 接口示例

    博客分类:
  • JAVA
 
阅读更多

Java 访问 .net WebService 接口示例

 

 

A.XML Code:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <KytSoapHeader xmlns="http://www.kyt56.cn/">
      <UserName>admin</UserName>
      <PassWord>admin</PassWord>
    </KytSoapHeader>
  </soap:Header>
  <soap:Body>
    <GetDeliveryListByStatus xmlns="http://www.kyt56.cn/" />
  </soap:Body>
</soap:Envelope>

 

 

第一种方式,普通访问网页的方式

JavaCode:

public static void main(String[] args) {
		try {
			String urlString = "http://localhost:8090/ws/DeliveryList.asmx";
			String xmlFile = "d:\\A.XML";
			String soapActionString = "http://www.kyt56.cn/GetDeliveryListByStatus";
			File fileToSend = new File(xmlFile);
			byte[] buf = new byte[(int) fileToSend.length()];
			new FileInputStream(xmlFile).read(buf);

			URL url = new URL(urlString);
			HttpURLConnection httpConn = (HttpURLConnection) url
					.openConnection();
			httpConn.setRequestMethod("POST");
			httpConn.setRequestProperty("Content-Length", String
					.valueOf(buf.length));
			httpConn.setRequestProperty("Content-Type",
					"text/xml; charset=utf-8");
			httpConn.setRequestProperty("SOAPAction", soapActionString);
			httpConn.setDoOutput(true);
			httpConn.setDoInput(true);
			OutputStream out = httpConn.getOutputStream();
			out.write(buf);
			out.close();

			InputStreamReader isr = new InputStreamReader(httpConn
					.getInputStream(), "utf-8");
			BufferedReader in = new BufferedReader(isr);

			String inputLine;
			BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
					new FileOutputStream("D:\\result.xml")));
			while ((inputLine = in.readLine()) != null) {
				System.out.println(inputLine.replaceAll("><", ">\n<"));
				bw.write(inputLine);
				bw.newLine();
			}
			bw.close();
			in.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

 

 

 第二种方式,java内置soap访问方式

JavaCode

package soap;

import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;

import javax.xml.soap.MessageFactory;
import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPConnection;
import javax.xml.soap.SOAPConnectionFactory;
import javax.xml.soap.SOAPConstants;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPEnvelope;
import javax.xml.soap.SOAPHeader;
import javax.xml.soap.SOAPMessage;

public class SOAPMain {

	public static void main(String[] args) {
		String url = "http://localhost:8090/ws/DeliveryList.asmx";
		String SOAPAction ="http://www.kyt56.cn/GetDeliveryListByStatus";
		String UserName="sadf";
		String PassWord="asdf";
		try {
			// 设置SOAP内容格式
			String soap = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
					+ "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"
					+ "<soap:Header /><soap:Body /></soap:Envelope>";
			InputStream is = new ByteArrayInputStream(soap.getBytes("UTF-8"));
			// 创建message对象
			MessageFactory mf =MessageFactory.newInstance(SOAPConstants.SOAP_1_1_PROTOCOL);
			SOAPMessage message = mf.createMessage(null, is);
			// 设置SOAPAction
			message.getMimeHeaders().addHeader("SOAPAction",SOAPAction);
			//设置请求字符格式
			message.setProperty(SOAPMessage.CHARACTER_SET_ENCODING, "utf-8");
			// 获取envelope
			SOAPEnvelope envelope = message.getSOAPPart().getEnvelope();
			// 设置  header  KytSoapHeader 用户名和密码
			SOAPHeader header = envelope.getHeader();
			SOAPElement headerElement = header.addChildElement(envelope
					.createName("KytSoapHeader","", "http://www.kyt56.cn/"));
			headerElement.addChildElement("UserName").addTextNode(UserName);
			headerElement.addChildElement("PassWord").addTextNode(PassWord);
			//设置Body
			SOAPBody body = envelope.getBody();
			
			// 保存Message
			message.saveChanges();

			//开始访问接口
			//创建连接对象
			SOAPConnection connection = SOAPConnectionFactory.newInstance().createConnection();
			//发送请求
			SOAPMessage reply = connection.call(message, url);
			//关闭连接对象
			connection.close();

			//访问结束开始处理结果
			//获取节点 KYTResults
			org.w3c.dom.Node node = reply.getSOAPBody().getFirstChild().getFirstChild().getFirstChild();
			
			System.out.println("Node Name:"+node.getLocalName()+"\n");
			System.out.println("Node Text:"+node.getTextContent());
			
			//System.out.println(((SOAPElement)reply.getSOAPBody().getChildElements().next()).getTextContent());

			System.out.println("\nResponse Content:");
			//将读取的内容读出来
			ByteArrayOutputStream out= new ByteArrayOutputStream();
			reply.writeTo(out);
			InputStreamReader isr = new InputStreamReader(new ByteArrayInputStream(out.toByteArray()), "utf-8");
			BufferedReader br = new BufferedReader(isr);
			while (br.ready()) {
				//String inputLine;
				System.out.println(br.readLine().replaceAll("><", ">\n<"));
			}
			br.close();
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

 

 

 

0
1
分享到:
评论

相关推荐

    java访问.net webservice获取与设置cookie

    以下是使用Java访问.NET Web服务并处理Cookie的一个基本示例: 1. 首先,确保已经生成了Web服务的客户端代理类。假设服务接口名为`LinkWebServiceService`,服务端点接口为`LinkWebServicePortType`。 2. 创建`...

    Java访问.Net Webservice 通过httpclient SOAP实现

    Java访问.Net Webservice的过程大致分为以下步骤: 1. **创建SOAP请求**:首先,我们需要构建一个符合SOAP规范的XML消息,这个消息包含了调用的Web方法名、参数等信息。例如,如果我们有一个名为`GetGreeting`的...

    java调用.net的WebService[借鉴].pdf

    - **了解 WebService 接口**:首先,你需要访问 WebService 提供的 WSDL(Web Service Description Language)文件,了解服务的接口、方法和参数。例如,`http://www.wopos.com/webservice/Weather.asmx?wsdl`。 ...

    用java调用.net接口的方法

    标签中的".net webservice 接口 源代码"表明,压缩包可能包含了示例代码,供学习者参考和实践。你可以根据提供的源代码,分析其工作原理,了解具体实现细节,包括请求构造、数据封装、错误处理等。 总的来说,调用...

    java调用.net webservice时所需的jar包

    - 创建实例并调用生成的Java接口上的方法来访问Web服务。 7. **注意事项**: - 需要确保使用的JAX-WS版本与.NET Web服务兼容。 - 跨域调用可能需要配置额外的安全策略,例如添加信任的证书或者设置正确的SOAP头。...

    java处理.net webservice返回的对象

    call.setTargetEndpointAddress(new java.net.URL(wsdlUrl)); // 设置操作名称 call.setOperationName(new QName(namespace, "GetSafeMode")); // 设置参数和返回类型 call.addParameter(new QName(namespace, ...

    java和.net的webservice调用介绍

    【Java与.NET的Web服务调用详解】 在分布式系统中,Web服务作为一种标准的通信机制,使得不同平台、不同语言的应用程序能够相互通信。本文将深入探讨Java和.NET之间如何进行Web服务调用,帮助开发者理解这两种技术...

    java调用.NET的webservice源码

    在提供的"WebServiceDemo"压缩包中,可能包含了Java客户端调用.NET WebService的示例代码。分析这些代码可以帮助我们更好地理解上述步骤,并实际操作Java调用.NET WebService的过程。 总结起来,Java调用.NET的Web...

    Java调用.NET web service

    在提供的资源中,“web service_demo.rar”可能是.NET Web Service的示例代码或部署文件,“cilentDemo.rar”可能是Java客户端的示例代码,“Java调用webservice类的方法.txt”可能包含了具体的Java调用步骤或代码...

    java axis 调用 .net webservice 短信收发

    1. **理解WebService接口**:.NET WebService通常以WSDL(Web Services Description Language)的形式提供其接口定义。WSDL文件描述了服务的地址、操作、输入和输出参数等。Java Axis可以通过这个WSDL文件自动生成...

    android 调用.net webservice

    3. **获取WebService接口信息**:包括WebService的URL、命名空间、方法名以及所需的参数等。 #### 三、KSOAP2简介 KSOAP2是一个用于Android平台的SOAP客户端库,它简化了Android应用与WebService之间的交互过程。...

    .net Post方式调用.net和java的webservice

    在.NET开发环境中,有时我们需要与Java应用程序进行交互,特别是通过Web服务进行数据交换。本文将深入探讨如何使用POST方式在.NET中调用.NET和Java编写的Web服务,并以XML作为请求数据格式。以下是对这个主题的详细...

    VB.NET/JAVA 采用SOAP 与Webservice发送/接收数据

    - Java中可以通过`java.net.HttpURLConnection`或者第三方库如Apache HttpClient来发送SOAP请求。 - 构建SOAP消息的方式与VB.NET类似,但需要注意字符串转义的不同,例如在Java中XML的双引号需要用`\"`来表示。 -...

    axis2请求.Net webservice接口Demo

    在压缩包中的`request.NetwsClient`可能是生成的Java客户端代码、配置文件或者示例调用代码。打开这个文件,根据其内容进一步了解或调整客户端的具体实现。 总结,通过Apache Axis2,我们可以轻松地在Java环境中...

    HttpURLConnection调用.net WebService

    `HttpURLConnection`是Java `java.net`包中的一个类,它提供了HTTP协议的连接、读写功能。相比于常用的`HttpClient`,`HttpURLConnection`具有更好的性能和资源管理,是Android官方推荐的网络通信方式。通过`...

    java程序调用.net/c#的webservice

    Java程序调用.NET/C#的Web服务是一种跨平台的交互方式,主要依赖于SOAP(Simple Object Access Protocol)协议,使得不同编程语言开发的应用程序能够相互通信。在本场景中,用户已经提供了一个.NET的Web服务,而我们...

    Android访问.NET的WebService

    本示例项目“Android访问.NET的WebService”提供了一种方法,让Android客户端能够调用.NET Web服务并处理返回的数据。以下是这个示例的关键知识点和实现步骤。 1. **SOAP协议**:Android通过SOAP(Simple Object ...

    Android使用Soap库连接ASP.NET WebService客户端

    接下来,我们将创建一个简单的示例,演示如何调用ASP.NET WebService。假设我们有一个名为`MyWebService`的服务,其中有一个名为`GetGreeting`的方法,该方法接收一个字符串参数并返回一个问候。 1. **初始化Soap...

    普通java访问c# webService

    本示例介绍的是如何使用Java来访问由C#编写的WebService服务。WebService是一种基于互联网的、平台无关的通信机制,它允许不同系统间的应用程序通过网络进行交互。 首先,我们需要理解WebService的基本原理。...

    java调用.netWerService接口demo及jar包

    在Java编程环境中,有时我们需要与.NET平台上的服务进行交互,比如调用.NET WebService接口来获取或处理数据。本教程将详细介绍如何在Java中实现这一功能,并提供一个实际的调用示例,以及所需的jar包。 一、Java...

Global site tag (gtag.js) - Google Analytics