Как установить мыло Заголовок с помощью ksoap2 - android

Мне нужно установить информацию заголовка мыла как часть проверки подлинности веб-метода. Я использую API ksoap2 для вызова веб-службы .NET. Вот заголовок мыла с запросом.

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

Можете ли вы предоставить код андроида, чтобы установить заголовок мыла "DTHeader" и установить "Username" и "Password".

Ответы

Ответ 1

Я сделал это следующим образом:

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

очевидно, измените строки по мере необходимости.

Ответ 2

Провел 2 дня, пытаясь заставить это работать с java и .net и, наконец, получил его работу.

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

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

androidHttpTransport.call(soap_action,envelope,headerProperty); 

попробовал приведенный выше пример и добавил раздел заголовка, но не был совместим с .net.

Моя часть кода работает, но для нее требуется версия KSoap2 ksoap2-андроид-сборочно-2.5.7-банка-с-dependencies.jar отсюда: расположение файла jap ksoap

щелкните правой кнопкой мыши и просмотрите необработанный файл и нажмите "Сохранить как".

Спасибо за всю помощь на форумах, как указал мне в правильном направлении...