PHP SoapClient的要求:没有该服务的有效方法(PHP SoapClient reques

2019-06-24 23:29发布

好吧,我想我需要另一双眼睛看这个了。 我在远程服务器上做一个简单的PHP SoapClient的调用回声Web服务。 我敢肯定,我没有任何拼写错误,并且函数调用是正确的。 不过,我收到一个致命错误,声称该功能不是有效的方法。 下面是Web服务类型的的var_dump。

阵列(4){[0] =>串(88) “结构EspException {串的代码;字符串对象;串源;串消息;}”[1] =>串(71)“结构ArrayOfEspException {串源; EspException异常;}” [2] =>串(43) “结构EchoTestRequest {串ValueIn;}”[3] =>串(45) “结构EchoTestResponse {串ValueOut;}”}

致命错误:未捕获的SOAPFault异常:[客户]功能(“EchoTestRequest”)是不适合的/home/grafixst/public_html/cpaapp/echo_test.php:38堆栈跟踪这个服务的有效方法:#0 /家庭/ grafixst /的public_html /cpaapp/echo_test.php(38):SoapClient的 - > __呼叫( 'EchoTestRequest',阵列)#1 /home/grafixst/public_html/cpaapp/echo_test.php(38):SoapClientAuth-> EchoTestRequest(阵列)#2 {主}抛出/home/grafixst/public_html/cpaapp/drew/echo_test.php在线38

下面是我使用拨打电话的代码:

require_once('SoapClientAuth.php');

ini_set("soap.wsdl_cache_enabled", "0");

#- Loading the WSDL document
$server = "https://wsonline.seisint.com/WsAccurint/EchoTest?ver_=1.65";
$wsdl = $server . "&wsdl";     

$client = new SoapClientAuth($wsdl,
                array(
                      'login' => $username,
                      'password' => $password
                     ));   

$types = $client->__getTypes();

var_dump($types);

echo "</br>";

$req = $client->EchoTestRequest(array('ValueIn' => 'echo'));

print $req->ValueOut;
echo "</br>";

Answer 1:

对于Web服务的可用功能的简单请求解决了这个问题。

$functions = $client->__getFunctions ();
var_dump ($functions);

EchoTestRequest不是一个有效的函数调用。 适当的函数调用EchoTest中,这是由可变功能转储示出。

array(1) { [0]=> string(54) "EchoTestResponse EchoTest(EchoTestRequest $parameters)" } 


Answer 2:

我假设你没有错字和方法是实际可用。

试试这个

ini_set("soap.wsdl_cache_enabled", "0");

这可能是因为WSDL的被缓存。



文章来源: PHP SoapClient request: not a valid method for this service