java 用xfire发布 webservice
我在android下 用ksoap调用没问题。
但是 现在要做一个head身份验证。 我在网络上找了一个xfire的例子,用android访问时,一直报“必须包含身份验证” ,我跟踪了一下错误 发现
Element token = cfx.getInMessage().getHeader().getChild("AuthenticationToken");
的token一直是null 没有获取到值 这是为什么呢 是我android调用的方式不对? 有经验的请不吝赐教!
android ksoap 调用head代码:Element[] header = new Element[1];
header[0] = new Element().createElement(NAMESPACE,"AuthenticationToken");
header[0].setAttribute(NAMESPACE,"Username","xiebuqing");
header[0].setAttribute(NAMESPACE,"Password","xiebuqing");
envelope.headerOut=header;
envelope.bodyOut = request;
envelope.dotNet = true;
我在android下 用ksoap调用没问题。
但是 现在要做一个head身份验证。 我在网络上找了一个xfire的例子,用android访问时,一直报“必须包含身份验证” ,我跟踪了一下错误 发现
Element token = cfx.getInMessage().getHeader().getChild("AuthenticationToken");
的token一直是null 没有获取到值 这是为什么呢 是我android调用的方式不对? 有经验的请不吝赐教!
android ksoap 调用head代码:Element[] header = new Element[1];
header[0] = new Element().createElement(NAMESPACE,"AuthenticationToken");
header[0].setAttribute(NAMESPACE,"Username","xiebuqing");
header[0].setAttribute(NAMESPACE,"Password","xiebuqing");
envelope.headerOut=header;
envelope.bodyOut = request;
envelope.dotNet = true;
大致的问题是在,cfx.getInMessage().getHeader().getChild()时 网络上的资料都是只传一个"类名"(AuthenticationToken)
我试着调用它的另一个重载方法
getChild("AuthenticationToken",Namespace.getNamespace("http://192.168.0.109:8080/smartweb/"));
加了一个命名空间的参数 就可以获取到header信息,后面获取内容也是一样。
token.getAttributeValue("Username",Namespace.getNamespace("http://192.168.0.109:8080/smartweb/"));
这样就可以获取到header的内容了!
希望可以帮到正在困惑的你 ^ ^
没人回复,来几个人接分,下午把帖结了!
谢谢