1

標準のSOAPクラスを使用して、PHPで特定のSOAPリクエストを構築しようとしています。

それは私がPHPで構築したいリクエストです:

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://www.autoscout24.com/webapi/" xmlns:data="http://www.autoscout24.com/webapi/data/">
   <soapenv:Header/>
   <soapenv:Body>
      <web:FindArticles>
         <web:request>
            <data:client_id>1234</data:client_id>
            <data:culture_id>de-DE</data:culture_id>
            <data:profile_id>CPCMS_DE</data:profile_id>
            <data:revision>3</data:revision>
            <data:vehicle_search_parameters>
               <data:address>
                  <data:countries>
                     <data:country_id>D</data:country_id>
                  </data:countries>
               </data:address>
               <data:dealer_id>2141356852</data:dealer_id>
            </data:vehicle_search_parameters>
        </web:request>
      </web:FindArticles>
   </soapenv:Body>
</soapenv:Envelope>

私はそれがどのように機能するかを理解しようとしました:

        try {
        $result = $client->FindArticles(
              array(  new SoapParam((string)"de-DE", "culture_id") )
        );
    } catch (SoapFault $exc) {
        var_dump($client->__getLastRequest());
        echo $exc->getMessage();
    }

この PHP 呼び出しは、次の SOAP エンベロープをエコーし​​ます。

        <?xml version="1.0" encoding="UTF-8"?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.autoscout24.com/webapi/"><SOAP-ENV:Body>
<ns1:FindArticles/>
</SOAP-ENV:Body></SOAP-ENV:Envelope>

ご覧のとおり、PHP は私の SOAPParameters を無視します。それはなぜですか、それを修正する方法は?

前もって感謝します!フロリアン

4

1 に答える 1

1

私はまだsoapparamを使用していません。私はいつもこのようにしています:

$arrCallParams = array();
$arrCallParams['culture_id']='de-DE';
$result= $client->FindArticles($arrCallParams);
于 2013-09-25T11:22:35.110 に答える