• 注册
当前位置:1313e > java >正文

java通过ksoap2实现访问C#写的WebService(基于soap协议)接口

java通过ksoap2实现访问C#写的WebService(基于soap协议)接口

  • 背景
  • 代码实现

背景

在一个大型平台项目中,经常会有多个团队协作开发,而不同的团队所使用的开发语言和开发技术也不尽相同,本文就介绍一下如何在java中访问C#写的WebService(基于soap协议)接口,很长用的场景就是Android手持系统访问WebService接口。

说明:本代码依赖的jar包如下:
ksoap2-android-assembly-2.5.4-jar-with-dependencies.jar

代码实现

package com.soap.client.test;import org.junit.Test;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;public class SoapClientTester {private final String MYURL = "http://172.16.12.23:9003/CuringWebService/CuringAppService";private final String NAMESPACE = "http://curing.mesnac.com";private final String METHODNAME = "getClassNames";public SoapClientTester() {}@Testpublic void TestCall(){try {SoapObject request = new SoapObject(NAMESPACE,METHODNAME);//            request.addProperty("name", accountet.getText().toString());		//为接口方法传参
//            request.addProperty("arg0", "{\"function\":\"getInStoreBill\",\"request\":{\"billNo\":\"20190310011001\",\"date\":\"2019-03-10\",\"shift\":\"123\"}}");SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);envelope.bodyOut = request;envelope.dotNet = true;envelope.setOutputSoapObject(request);HttpTransportSE ht = new HttpTransportSE(MYURL);ht.call(NAMESPACE+METHODNAME, envelope);				//接口调用//返回对象应为Object 否则会出现转换异常错误Object soapObject = (Object) envelope.getResponse();System.out.println(soapObject.toString());//后面的代码就是对soapObject.toString()的内容进行解析,这就是接口方法的返回值}catch (Exception e) {e.printStackTrace();}}
}

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

最新评论

欢迎您发表评论:

请登录之后再进行评论

登录