SOAP WSDL php 请求
SOAP WSDL php request
我正在尝试通过 SOAP 发送请求,并调用服务函数。我有 WSDL 文件,其中有 return 个可用函数。
这是我的代码示例:
ini_set('display_errors', '1');
ini_set('error_reporting', E_ALL &~ (E_NOTICE | E_STRICT));
ini_set("soap.wsdl_cache_enabled", 0);
$wsdl = 'source/HPSMInteractionsFromMosRu.wsdl';
$client = new SoapClient($wsdl,
array(
'trace' => 1,
'exception' => 0
));
$res = $client->RetrieveHPSMInteractionsFromMosRuKeysList(array(
'Portal' => 'Portal_example',
'CK' => 'CK_example'
));
print_r($res);
那是 return 我的一个错误:
Fatal error: Uncaught SoapFault exception: [Client] SOAP-ERROR: Encoding: object has no 'model' property in *my_path* Stack trace: #0 *my_path* (24): SoapClient->__soapCall('RetrieveHPSMInt...', Array) #1 {main} thrown in *my_path* on line 24
虽然,如果我尝试通过 SoapUI 程序执行该请求,使用相同的 WSDL 文件,我会发出 XML 请求:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://schemas.hp.com/SM/7" xmlns:com="http://schemas.hp.com/SM/7/Common" xmlns:xm="http://www.w3.org/2005/05/xmlmime">
<soapenv:Header/>
<soapenv:Body>
<ns:RetrieveHPSMInteractionsFromMosRuKeysListRequest>
<ns:model>
<ns:keys>
<ns:ID></ns:ID>
</ns:keys>
<ns:instance>
<ns:Portal>Portal_example</ns:Portal>
<ns:CK>CK_example</ns:CK>
</ns:instance>
</ns:model>
</ns:RetrieveHPSMInteractionsFromMosRuKeysListRequest>
</soapenv:Body>
</soapenv:Envelope>
我是 SOAP 新手。但是我是怎么理解的,我必须使用 XML 中的参数和关联数组调用函数。
我只使用过少量 SOAP,但因为它提到缺少 "model" 我认为您的请求应该如下所示:
$res = $client->RetrieveHPSMInteractionsFromMosRuKeysList(array(
'model' => array(
'keys' => array(
'ID' => ''
),
'instance' => array(
'Portal' => 'Portal_example',
'CK' => 'CK_example'
),
),
));
我正在尝试通过 SOAP 发送请求,并调用服务函数。我有 WSDL 文件,其中有 return 个可用函数。 这是我的代码示例:
ini_set('display_errors', '1');
ini_set('error_reporting', E_ALL &~ (E_NOTICE | E_STRICT));
ini_set("soap.wsdl_cache_enabled", 0);
$wsdl = 'source/HPSMInteractionsFromMosRu.wsdl';
$client = new SoapClient($wsdl,
array(
'trace' => 1,
'exception' => 0
));
$res = $client->RetrieveHPSMInteractionsFromMosRuKeysList(array(
'Portal' => 'Portal_example',
'CK' => 'CK_example'
));
print_r($res);
那是 return 我的一个错误:
Fatal error: Uncaught SoapFault exception: [Client] SOAP-ERROR: Encoding: object has no 'model' property in *my_path* Stack trace: #0 *my_path* (24): SoapClient->__soapCall('RetrieveHPSMInt...', Array) #1 {main} thrown in *my_path* on line 24
虽然,如果我尝试通过 SoapUI 程序执行该请求,使用相同的 WSDL 文件,我会发出 XML 请求:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://schemas.hp.com/SM/7" xmlns:com="http://schemas.hp.com/SM/7/Common" xmlns:xm="http://www.w3.org/2005/05/xmlmime">
<soapenv:Header/>
<soapenv:Body>
<ns:RetrieveHPSMInteractionsFromMosRuKeysListRequest>
<ns:model>
<ns:keys>
<ns:ID></ns:ID>
</ns:keys>
<ns:instance>
<ns:Portal>Portal_example</ns:Portal>
<ns:CK>CK_example</ns:CK>
</ns:instance>
</ns:model>
</ns:RetrieveHPSMInteractionsFromMosRuKeysListRequest>
</soapenv:Body>
</soapenv:Envelope>
我是 SOAP 新手。但是我是怎么理解的,我必须使用 XML 中的参数和关联数组调用函数。
我只使用过少量 SOAP,但因为它提到缺少 "model" 我认为您的请求应该如下所示:
$res = $client->RetrieveHPSMInteractionsFromMosRuKeysList(array(
'model' => array(
'keys' => array(
'ID' => ''
),
'instance' => array(
'Portal' => 'Portal_example',
'CK' => 'CK_example'
),
),
));