1. ホーム
  2. php

[解決済み] phpのsoapcall()関数でsoapリクエストのパラメータを送信する方法

2022-02-05 05:45:20

質問内容

サーバーに以下のxmlリクエストを送信したいのですが、soap UIを使用すると問題なく送信できますが、phpでは送信できません。

  <ns:AgentLogin>

       <ns:AgentLoginRQ>

        <ns:Authentication>

           <ns:DBName>************</ns:DBName>

           <ns:IP>************</ns:IP>

        </ns:Authentication>

        <ns:AgentABTA>************</ns:AgentABTA>

        <ns:UserName>************</ns:UserName>

        <ns:Password>************</ns:Password>

      </ns:AgentLoginRQ>

  </ns:AgentLogin>

私はこのようにソープクライアントを作成します。

 $client = new \SoapClient("https://digicom-poc-ota.inspiretec.com/TravelinkCEService.svc?wsdl"); 

を作成し、次のようなソープコール関数を作成します。

$data = array('AgentABTA'=>'DIGICOM_POC_DEMO'
        ,'UserName'=>'************'
        ,'Password'=>'************'
        ,'Products'=>'************'
        );

$result = $client->__soapCall('AgentLogin',$data);

__soapcall は、リクエストボディが空であるというエラーを発生させます。

どうすればいいですか?

Hope this might help you out:

$client = new \SoapClient("your_wsdl_link"
            , ['trace' => true]);
                $params =  array(
                'AgentLoginRQ' => array(
                    'DBName'=>'DATABASE_NAME',
                    'AgentABTA' => '****',
                    'UserName' => '****',
                    'Password' => '********',
                    'Products' => '',
                )
            );
        $result = $client->YourFunction($params);