0

リクエストヘッダーを生成するために使用しているコードは次のとおりです。

$headers = array(
                  new SOAPHEADER($this->_ns,'username',$this->_username,false, $this->_actor),
                  new SOAPHEADER($this->_ns,'password',$this->_password,false, $this->_actor));

$this->_client->__setSOAPHeaders($headers);

これにより、次が生成されます。

<SOAP-ENV:Header>
  <ns2:username SOAP-ENV:actor="http://schemas.xmlsoap.org/soap/actor/next">test</ns2:username>
  <ns2:password SOAP-ENV:actor="http://schemas.xmlsoap.org/soap/actor/next">test</ns2:password>
</SOAP-ENV:Header>

それはすべて元気でダンディです。

ここに私の2つの質問があります:

API ドキュメントでは、ユーザー名がns1:usernameで、パスワードがns2:passwordである必要があります。私は両方ともns2です。まず、ns1|2 の意味は何ですか? どうすればこれを修正できますか?

2 番目の質問は、SOAPHEADER() を 1 回呼び出すだけで同じ結果を生成する方法はありますか?

4

1 に答える 1

0
  1. 宣言を見てサービスを知らずに名前空間が違いを生むかどうかを言うのは簡単ではありませんが、通常、受信側のサービスはその特定の名前空間のタグのみを探します。両方に追加$this->_nsすると、もちろん同じになります。適切な名前空間を自分で提供する必要があります (接頭辞は関係ありませんが、uri は関係あります)。
  2. なぜあなたは1回だけ電話したいのですか?
于 2010-09-29T18:26:12.400 に答える