我有WSDL,它返回下面包含的功能列表
[0] => ExternalCacheAccessRsp service(ExternalCacheAccessReq $parameters)
[1] => PingRsp service(PingReq $parameters)
[2] => SystemInfoRsp service(SystemInfoReq $parameters)
[3] => TimeRsp service(TimeReq $parameters)
如何通过
调用PingReq函数__的SOAPCall()
当我试图调用__soapCall('service')时,它会返回第一个方法
“ExternalCacheAccessReq”
答案 0 :(得分:0)
感谢您的回答,但这两种解决方案都不正确。
在第一种情况下,Soap返回我没有传递属性“CacheName”,这是“ExternalCacheAccessRsp”必需的(第一种方法)。
在第二个解决方案中,我发出消息称“PingRsp”方法无效。有效的方法是“服务”,但正如您在顶部看到的,所有方法都有名称“service”。
答案 1 :(得分:0)
唯一的方法是手动编写XML请求并通过方法SoapClient::__doRequest
发送。
在这里查看我的答案:stackoverflow.com/a/51099774/6783224
答案 2 :(得分:-1)
给定SoapClient,如:
$serviceUrl = 'your service address';
$client = new SoapClient($serviceUrl, array(
'trace' => true,
'soap_version' => SOAP_1_2,
'encoding' => 'UTF-8')
);
您可以将您的方法称为:
$client->PingRsp($parameters);
祝你好运!
答案 3 :(得分:-1)
您的网络服务方法已超载,因此您应设置PingReq
指定的输入参数。服务器可以区分您想要的过载的唯一方法是输入参数的格式和结构。您可以检查WSDL以查看PingReq
的结构是什么。
$client = new SoapClient('http://wsdl'); // <-- enter your wsdl url
// set $params as defined by your WSDL for the `PingReq` structure.
$params = array(
'param1' => 'one',
'param2' => 'two'
);
$response = $client->service($params);