0

GetPeriodicValuesという.NETWSDL関数にリクエストを送信しようとしています。この関数にはいくつかのパラメーターが必要ですが、問題はSoapClientが誤ったXMLを作成することです。

このPHPコード...

$client = new SoapClient(self::URL , array('trace' => 1,  'encoding' => 'UTF-8', 'soap_version' => SOAP_1_1));
$params = array('name' => 'myname', 'address' => 'myaddress');
$result = $client->__soapCall('GetPeriodicValues', array('parameters' => $params), array());

...次のリクエストを生成します-XML(私はいくつかの無関係なコンテンツを除外しました):

<SOAP-ENV:Body>
   <ns1:RequestOf_GetPeriodicValuesParameters/>
</SOAP-ENV:Body>

しかし、私はそれがこれを作成することを期待します

<SOAP-ENV:Body>
   <ns1:RequestOf_GetPeriodicValuesParameters>
      <ns1:name>myname</ns1:name>
      <ns1:address>myaddress</ns1:address>
   </ns1:RequestOf_GetPeriodicValuesParameters>
</SOAP-ENV:Body>

関数呼び出しにパラメータを含めるにはどうすればよいですか?

4

1 に答える 1

0

問題が解決しました。私が学んだことは、XML出力はWSDLに依存していることであり、私の場合は、キー「Params」を使用して配列にパラメーターを配置する必要がありました。ただし、WSDLによって返されるXMLを見ると、そのような情報は見つかりませんでした。代わりに、キーの「パラメーター」を使用する必要があるように見えました。よくわかりませんが、サービスに問題があった可能性があります。

于 2012-05-24T07:38:21.733 に答える