jak ustawić nagłówek soap za pomocą ksoap2-android

Muszę ustawić informacje nagłówka soap jako część uwierzytelniania metody internetowej. Używam ksoap2 API do wywołania usługi internetowej. NET. Oto nagłówek soap z prośbą.

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

Czy możesz podać kod Androida, aby ustawić nagłówek soap "DTHeader" i ustawić "nazwę Użytkownika" i "hasło".

Author: Steve, 2011-04-10

2 answers

Zrobiłem tak:

import org.kxml2.kdom.Element;

Następnie podczas przygotowywania koperty

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

Z

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

Oczywiście, Zmień ciągi w razie potrzeby.

 29
Author: bigstones,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-10 19:45:01

Spędziłem 2 dni próbując uruchomić to z Javą i. Net i w końcu to działa..

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

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

androidHttpTransport.call(soap_action,envelope,headerProperty); 

Wypróbowałem powyższy przykład i dodałem sekcję nagłówka, ale nie była zgodna z .net.

Mój fragment kodu działa ale wymaga wersji KSoap2 ksoap2-android-assembly-2.5.7-jar-with-dependencies.jar stąd: Lokalizacja pliku jar ksoap

Kliknij prawym przyciskiem myszy i wyświetl plik raw i kliknij Zapisz jako.

Dzięki za pomoc na forach tak jak wskazałem w we właściwym kierunku...

 10
Author: Lee,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-07-11 08:02:33