在PHP-Soap客户端中使用magic函数
我将PHP Soap客户端与WSDL文档一起使用。客户端的创建方式如下:在PHP-Soap客户端中使用magic函数,php,soap,client,soap-client,Php,Soap,Client,Soap Client,我将PHP Soap客户端与WSDL文档一起使用。客户端的创建方式如下: $client = new SoapClient('http://eklima.met.no/metdata/MetDataService?WSDL'); 现在我想调用函数'getCountyTypes',它接受参数'language'和'countiesId' $args = array( 'language'=>'no', 'countiesId'=>'2' ); 直接使用函数_soa
$client = new SoapClient('http://eklima.met.no/metdata/MetDataService?WSDL');
现在我想调用函数'getCountyTypes',它接受参数'language'和'countiesId'
$args = array(
'language'=>'no',
'countiesId'=>'2'
);
直接使用函数_soapCall可以按预期工作:
$res = $client->__soapCall('getCountyTypes', $args);
尝试使用魔术功能无效:
$res = $client->getCountyTypes($args);
我得到以下错误:
PHP Notice: Array to string conversion in /Users/jorgen/soaptest.php on line 60
PHP Fatal error: Uncaught SoapFault exception: [SOAP-ENV:Client] No mapping found for ':countiesId' using encoding style 'http://schemas.xmlsoap.org/soap/encoding/'. [java.lang.IllegalArgumentException] in /Users/jorgen/soaptest.php:60
Stack trace:
#0 /Users/jorgen/soaptest.php(60): SoapClient->__call('getCountyTypes', Array)
#1 /Users/jorgen/soaptest.php(60): MySoapClient->getCountyTypes(Array)
#2 {main}
thrown in /Users/jorgen/soaptest.php on line 60
我需要一些关于如何使用具有神奇功能的soap客户端的说明
编辑:添加了var_dump($client->_getFunctions())的输出
正如所指出的,正确的解决方法是使用
$res = $client->__soapCall('getCountyTypes', $args);
正如所指出的,正确的解决方法是使用
$res = $client->__soapCall('getCountyTypes', $args);
我也有同样的问题。我想我必须做如下的事情:
$args = array(
'language'=>'no',
'countiesId'=>'2' );
$res = $client->getCountyTypes($args);
但实际上我必须做:
$res = $client->getCountyTypes("no","2");
我也有同样的问题。我想我必须做如下的事情:
$args = array(
'language'=>'no',
'countiesId'=>'2' );
$res = $client->getCountyTypes($args);
但实际上我必须做:
$res = $client->getCountyTypes("no","2");
你能做到$client=newsoapclient($wsdl\uurl);var_dump($client->_getFunctions());然后将Vardumped数据粘贴到这里,这样我们就可以看到问题的实质。我将输出添加到问题中。感谢您的关注。您实际期望的是什么?您希望使用magic method\uu调用来执行此操作,因为$res=$client->getCountyTypes($args);任何时候都不起作用,因为正确的做法不同。正确的做法是什么?如何直接在客户机对象上调用函数?根据我找到的各种例子,这似乎是可能的。$res=$client->\uu soapCall('getCountyTypes',$args);它本身就是一种正确的方法uu call函数现在已被弃用。您可以执行$client=new SoapClient($wsdl\u url);var_dump($client->_getFunctions());然后将Vardumped数据粘贴到这里,这样我们就可以看到问题的实质。我将输出添加到问题中。感谢您的关注。您实际期望的是什么?您希望使用magic method\uu调用来执行此操作,因为$res=$client->getCountyTypes($args);任何时候都不起作用,因为正确的做法不同。正确的做法是什么?如何直接在客户机对象上调用函数?根据我找到的各种例子,这似乎是可能的。$res=$client->\uu soapCall('getCountyTypes',$args);调用函数本身就是一种正确的方法,现在不推荐使用