【问题标题】:Set Soap Header ksoap2 android设置肥皂标题 ksoap2 android
【发布时间】:2012-07-20 01:27:52
【问题描述】:

首先,对于提出一个在 SOF 中已经很常见的问题,我深表歉意。

但我是初学者,我当然很残忍。

我正在创建一个与 WS 通信的 android 应用程序。所以我可以向WS发出请求,我必须在信封的标题中添加一个值,但我不能添加。

我在 SOF 中找到了一些关于它的答案,但是无法完全理解它是如何工作的。也许,我的怀疑是由于标题的节点,这最终让我更加困惑。

我发现我最终没有帮助的答案之一:“How to set soap header using ksoap2 android

下面是需要做的XML请求:

 ?xml version="1.0" encoding="utf-8"?
 soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"

soap:Header
   ValidationSoapHeader xmlns="http://tempuri.org/"
      DevToken>string/DevToken
   /ValidationSoapHeader
/soap:Header

soap:Body
  ListaCidades xmlns="http://tempuri.org/" /
/soap:Body
/soap:Envelope

下面是我的代码:

SoapObject request = new SoapObject(ApplicationData.NAMESPACE, ApplicationData.METHOD_NAME_LISTA_CIDADES);

    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

    envelope.dotNet = true;

    envelope.setOutputSoapObject(request);

究竟如何使用信封.HeaderOut?是否真的有必要创建一个帮助方法来构建一个元素,即使只需要传递一个参数(DevToken)?

感谢您的关注!

【问题讨论】:

  • 已解决!!!终于解决了!

标签: android soap header ksoap2


【解决方案1】:
   Element h = new Element().createElement(NAMESPACE, "AuthHeader");
   Element Username = new Element().createElement(NAMESPACE, "Username");
   Username.addChild(Node.TEXT, "CBROWN");
   h.addChild(Node.ELEMENT, Username);
   Element wssePassword = new Element().createElement(NAMESPACE, "wssePassword");
   wssePassword.addChild(Node.TEXT, "welcome");
   h.addChild(Node.ELEMENT, wssePassword);

   envelope.headerOut = new Element[]{h};

添加上述代码以在信封中添加标题

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2014-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多