Blackberry kSoap2 и мыльный заголовок

Попытка указать собственный заголовок мыла. Не уверен, как должно быть заполнено свойство SoapEnvelope.headerOut.

Мой код до сих пор?

String soapAction = serviceNamespace + "/SearchCustomer";
SoapObject rpc = new SoapObject(serviceNamespace, "SearchCustomers");
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.bodyOut = rpc;
envelope.dotNet = true;
envelope.encodingStyle = SoapSerializationEnvelope.ENC;

rpc.addProperty("searchBy", searchBy);
rpc.addProperty("groupBy", Integer.toString(groupBy));

Вот экстракт заголовка WSDL...

<soap:Header>
 <MISHeader xmlns="http://NCBI/WS/CRM">
  <applicationName>string</applicationName>
  <userName>string</userName>
 </MISHeader>
</soap:Header>

person Jan de Jager    schedule 16.11.2010    source источник


Ответы (1)


headerOut — это Element[], который вам нужно построить.

Что-то вроде этого

  Element usernameElement = new Element().createElement(OASIS_SECURITY_XSD_URL, "Username");
  usernameElement.addChild(Node.TEXT, username);
  Element passwordElement = new Element().createElement(OASIS_SECURITY_XSD_URL, "Password");
  passwordElement.addChild(Node.TEXT, password);

а затем добавить его в массив..

person Manfred Moser    schedule 17.11.2010
comment
Огромнейшее спасибо, успел сделать это прямо перед тем, как вы опубликовали. Однако есть одна вещь. Как избавиться от префиксов (:n0)... ‹v:Header› ‹n0:MISHeader xmlns:n0=NCBI/WS/CRM› ‹applicationName›NCBI BlackBerry‹/applicationName› ‹userName›166848‹/userName› ‹/n0:MISHeader› ‹/v:Header› - person Jan de Jager; 18.11.2010
comment
кстати, чтобы избавиться от украшений, которые вы установили для implicitTypes на конверте значение false.... - person Manfred Moser; 21.12.2010