我想向服务器发送以下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给我错误的请求正文。
答案 0 :(得分:1)
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);
答案 1 :(得分:0)
这肯定是因为数组数据结构根据WSDL是不正确的。您应该最终使用WSDL来生成PHP,这是当今常见的做法。通过OOP方法,它可以帮助构造请求数据并轻松处理所有响应。
您应该看一下PackageGenerator项目,它可以真正帮助您处理此SOAP Web服务。