如何使用ksoap2设置肥皂标题 – android
我需要将肥皂标题信息设置为Web方法身份validation的一部分。 我使用ksoap2 API调用.NET Web服务。 这是带请求的肥皂头。
<soap:Header> <DTHeader xmlns="http://myServer.com/webservices/"> <Username> string </Username> <Password> string </Password> </DTHeader> </soap:Header> <soap:Body> <MyTestMethod xmlns="http://myServer.com/webservices/"> <ID> string </ID> <TransID> guid </TransID> </MyTestMethod> </soap:Body>
你可以请提供android代码来设置肥皂头“DTHeader”,并设置“用户名”和“密码”。
我这样做了:
import org.kxml2.kdom.Element;
然后准备信封
soapEnvelope.headerOut = new Element[1]; soapEnvelope.headerOut[0] = buildAuthHeader(); // ...send request...
同
private Element buildAuthHeader() { Element h = new Element().createElement(NAMESPACE, "AuthHeader"); Element username = new Element().createElement(NAMESPACE, "user"); username.addChild(Node.TEXT, USERNAME); h.addChild(Node.ELEMENT, username); Element pass = new Element().createElement(NAMESPACE, "pass"); pass.addChild(Node.TEXT, PASSWORD); h.addChild(Node.ELEMENT, pass); return h; }
显然,根据需要更改string。
花了2天试图让这个工作与Java和.NET,并终于得到它的工作..
ArrayList<HeaderProperty> headerProperty = new ArrayList<HeaderProperty>(); headerProperty.add(new HeaderProperty("guid", "value...")); androidHttpTransport.call(soap_action,envelope,headerProperty);
尝试了上面的例子,并添加一个头部分,但与.net不兼容。
我的一段代码工作,但需要从这里KSoap2版本ksoap2-android-assembly-2.5.7-jar-with-dependencies.jar: ksoap jar文件位置
右键单击并查看原始文件并单击另存为。
感谢所有在论坛上的帮助,指出了我的正确方向。