高校手机签到系统系列:
高校手机签到系统——第一部分Authority权限系统(上)
高校手机签到系统——第一部分Authority权限系统(下)
一、网上常规的关于ksoap2的使用
如上,发送一个Soap请求,首先要确定请求的地址wsdl,然后请求一个SoapAction,发送的参数SoapObject,首先需要命名空间,然后是MethodName。问题来了,这个MethodName是神马东东?上面的地址wdsl\SoapAction\NameSpace其实在webservice或者说wcf的配置文档里都有,唯独没有一个叫MethodName的东东。
二、服务配置文档
先看一看NameSpace:
第一个NameSpace就是我们上面的请求使用的NameSpace,加红线这个是在传递复杂类型,使用了DataCotract契约的类的时候使用。
下面再看看SoapAction的描述:
每个Action有其对应的Message,也就是Action的参数,关于这个参数的描述见下:
看到加红线的地方了吧,在调用服务IsUserBinding的时候,传递的message 的名字叫什么,就叫IsUserBinding,上面请求的MethodName是什么,就是IsUserBinding。照此理解,调用服务SignIn的时候,此时MethodName应该为SignIn,错。注意到上面SoapObject的构造,传递两个参数,一个是namespace,一个是methodname,实际使用的时候其实应该是MessageName,也就是调用SignIn传递的参数MethodName应该是SignInRequest。高校签到系统——手机客户端那篇博客里有一段:
这才是正确的用法。希望今后童鞋们别被忽悠。