1.WCF服务编写
//接口设置 注意后面的Namespace 在java 或者安卓中将会被使用
[ServiceContract(Name = "IService", Namespace = "http://www.json.com")]
public interface IService
{
[OperationContract]
string getProductName();
}
//接口实现
public class Service1 : IService {
public string getProductName()
{
return "WCF访问成功";
}
}
运行起来后截图如下
点击图上的 http://localhost:64422/Service1.svc?wsdl 连接 红色划线就是 java里面的SoapAction
-------------------------------编写好后 直接使用Visual Studio运行 一直保持运行状态 WCF结束-------------------
2. java代码开始
package Soap.Test;
import java.io.IOException;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import org.xmlpull.v1.XmlPullParserException;
public class KSoapUtil {
//WCF里面的命名空间
private static final String NameSpace = "http://www.json.com";
//webService 访问地址
private static final String Url = "http://localhost:64422/Service1.svc";
// 方法名称
private static final String methodName = "getProductName";
// SoapAction
private static final String action = "http://www.json.com/IService/getProductName";
public static SoapObject call(String NameSpace, String MethodName, String Url, String Action){
SoapObject soapObject = new SoapObject(NameSpace, MethodName);
HttpTransportSE trans = new HttpTransportSE(Url);
trans.debug = true; // 使用调试功能
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER10);// 版本
envelope.dotNet = true;
envelope.bodyOut = trans;
envelope.setOutputSoapObject(soapObject);
try {
trans.call(Action, envelope);
System.out.println(envelope.getResponse());
}
catch(Exception e){
System.out.println(e.getMessage());
}
return (SoapObject)envelope.bodyIn;
}
public static void main(String[] args) {
call(NameSpace, methodName, Url, action);
}
}