添加以下解决:
call.setUseSOAPAction(true);
call.setSOAPActionURI("http://tempuri.org/GetStudent");


.net服务端怎么都接不到传送的参数,接到的都是null,可以在添加参数的地方添加上命名空间
call.setOperationName(new QName(namespace, methodName));
/*这里如果设置成call.addParameter(new QName(namespace,"参数"), XMLType.XSD_STRING,
ParameterMode.IN);就是调用document风格的.net服务端
如果设反了,.net服务端就接不到参数,接到的是null
*/
call.addParameter("参数", XMLType.XSD_STRING, ParameterMode.IN);
附:基本访问webserices代码
String url = "http://192.168.21.154/yzwzyzWS/Service.asmx?wsdl";
String namespace = "http://tempuri.org/";
String methodName = "GetStudent";
String soapActionURI = "http://tempuri.org/GetStudent";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(url);
call.setUseSOAPAction(true);
call.setSOAPActionURI(soapActionURI);
call.setOperationName(new QName(namespace, methodName));
call.addParameter(new QName(namespace, "loginName"), XMLType.XSD_STRING,ParameterMode.IN);
call.addParameter(new QName(namespace, "passWord"), XMLType.XSD_STRING,ParameterMode.IN);
call.setReturnType(XMLType.XSD_STRING);
String[] str = new String[2];
str[0] = "test010";
str[1] = "";
Object obj = call.invoke(str);
System.out.println("obj + " + obj);
当服务器无法识别HTTP的SOAPAction时,可以通过在.NET客户端添加命名空间来解决参数接收为null的问题。以下是基本的WebService访问代码示例。
1790

被折叠的 条评论
为什么被折叠?



