如何使用kso​​ap2设置soap标题 - android

发布于 2024-10-31 14:04:52 字数 619 浏览 5 评论 0原文

我需要将肥皂头信息设置为 Web 方法身份验证的一部分。我正在使用 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代码来设置soap标头“DTHeader”并设置“用户名”和“密码”。

I need to set the soap header information as part of authentication of a web method. I'm using ksoap2 API to call .NET web service. Here is the soap header with request.

<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>

Can you please provide the android code to set the soap header "DTHeader" and set "Username" and "Password".

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

只等公子 2024-11-07 14:04:52

我是这样做的:

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;
}

需要更改字符串。

I did that this way:

import org.kxml2.kdom.Element;

then while preparing envelope

soapEnvelope.headerOut = new Element[1];
soapEnvelope.headerOut[0] = buildAuthHeader();
// ...send request...

with

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;
}

obviously, change strings as needed.

酒几许 2024-11-07 14:04:52

花了 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-dependency.jar
从这里开始:ksoap jar 文件位置

右键单击​​并查看原始文件,然后单击另存为。

感谢论坛中的所有帮助,为我指明了正确的方向......

Spent 2 days trying to get this to work with java and .net and have finally got it working..

ArrayList<HeaderProperty> headerProperty = new ArrayList<HeaderProperty>();

headerProperty.add(new HeaderProperty("guid", "value..."));

androidHttpTransport.call(soap_action,envelope,headerProperty); 

tried the above example and would add a header section but wasn't compatible with .net.

My piece of code works but requires KSoap2 version
ksoap2-android-assembly-2.5.7-jar-with-dependencies.jar
from here: ksoap jar file location

right click and view raw file and click save as.

Thanks for all the help in the forums as pointed me in the right direction...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文