0

まず、ここ SOF ではすでに一般的な質問をして申し訳ありません。

しかし、私は初心者であり、確かに残酷です。

WS と通信する Android アプリケーションを作成しています。WS にリクエストできるので、エンベロープのヘッダーに値を追加する必要がありますが、追加できません。

ここSOFでそれに関するいくつかの回答を見つけましたが、それがどのように機能するかを完全には理解できませんでした. おそらく、私の疑問はヘッダーのノードが原因であり、さらに混乱することになりました.

私が見つけた答えの1つは、 「 ksoap2 androidを使用してsoapヘッダーを設定する方法」です。

以下は、実行する必要がある 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) を 1 つしか渡さなくても、Element を構築するためのヘルパー メソッドを作成する必要はありますか?

ご清聴ありがとうございました!

4

1 に答える 1

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

エンベロープにヘッダーを追加するための上記のコードを追加します

于 2013-01-08T08:24:57.240 に答える