如何使用kso​​ap2设置肥皂标题 – 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文件位置

右键单击并查看原始文件并单击另存为。

感谢所有在论坛上的帮助,指出了我的正确方向。