3

SOAP リクエストをリモート サーバーに送信しようとしていますが、次のリクエスト メッセージを送信する必要があります。

<SOAP-ENV:Body>
<ns1:F1>
<id>2323</id>
</ns1:F1>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope> 

しかし、私のリクエストはこのようなものです

<SOAP-ENV:Body>
<ns1:F1/>
<param1>2323</param1>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope> 

このようにWAMPサーバーの一般的なphp soap_client関数を使用しました。

 $client = new SoapClient("name.wsdl",array(
    "trace"      => 1,
    "exceptions" => 0 );

  $result = $client->F1($value);

2番目のアウトプットを最初のものに変換するにはどうすればよいですか。パラメータ名を param1 から F1 に変更し、Body タグを正しく閉じる必要があります。

4

3 に答える 3

3

どのように価値を構築していますか?Web サービスが複合型を探している場合は、この変数を多次元配列として作成する必要がある場合があります。WSDL ファイルに手がかりがある場合は、それを探すことができます。

$value = array(
           'F1' = array(
                    'id' => 2323
                       )
               );
于 2012-12-11T16:28:35.333 に答える
1

__soapCall関数内でパラメータを使用してみてください。

$client = new SoapClient("name.wsdl");

$arrayname = array(
  XXXXXXXXX
);

$response = $client->__soapCall("F1", array($arrayname ));
于 2012-12-12T05:47:36.277 に答える