来自PHP的SOAP请求不起作用

来自PHP的SOAP请求不起作用,php,web-services,soap,wsdl,Php,Web Services,Soap,Wsdl,我有一个可用的web服务@,我正试图发送一个SOAP请求,请求方法-一些函数,其中包含这两个参数,但仍然无法通过连接 这是我的代码: <?php $param = array('cedula'=>'XXXX','contrasena'=>'YYYYYY'); $client = new SoapClient("http://www.xxxxx/zzzzzzzz/service.asmx?wsdl"); $result = $client->__soapCall('so

我有一个可用的web服务@,我正试图发送一个SOAP请求,请求方法-
一些函数
,其中包含这两个参数,但仍然无法通过连接

这是我的代码:

<?php

$param = array('cedula'=>'XXXX','contrasena'=>'YYYYYY');

$client = new SoapClient("http://www.xxxxx/zzzzzzzz/service.asmx?wsdl");
$result = $client->__soapCall('some_function', $param);

print $result;

?>

我得到的错误是:

致命错误:未捕获的SoapFault异常:[soap:Server]服务器无法处理请求。-->对象引用未设置为对象的实例。在/home/zzzz/xxxxxxxxx.com/uni/index.php中:6堆栈跟踪:#0/home/zzzz/xxxxxxxxx.com/uni/index.php(6):SoapClient->uusoapcall('some_函数',数组)#1{main}在第6行抛出/home/zzzz/xxxxxxxxxxxxx.com/uni/index.php


请建议更正。提前非常感谢:)

我认为您很快就能让这段代码正常工作了。我也相信StackOverflow的回答,看起来与您的问题非常相似:

也许你应该直接拍摄这个方法,就像这样:

$client->SOME_FUNCTION(array("request" => array('cedula'=>'XXXX','contrasena'=>'YYYYYY'));

希望有帮助!:)

我认为,在wsdl中,为某些功能提供服务可能是个问题

以下是服务列表:

它们都能工作,但有些函数不能。转到url并尝试设置参数,然后单击Invoke。它将不起作用,并引发异常“对象引用未设置为对象的实例”。 然后尝试其他服务,它将工作并返回一些结果

其他_功能服务工程示例:


$param = array('estatus'=>'XXXX');

$client = new SoapClient("http://www.xxxxxx/zzzzzzzzzz/service.asmx?wsdl");
$result = $client->__soapCall('OTHER_FUNCTION', $param);

print_r($result);


谢谢@dootzky&@lulco。我已经解决了这个问题。下面的代码对我来说非常好:

<?php

ini_set("soap.wsdl_cache_enabled", "0"); // disabling WSDL cache
$wsdl_path = "http://www.xxxxxxx/zzzzzzzzzz/service.asmx?WSDL";

$login_id = 'XXXX';
$password = 'YYYYYY';

$client = new SoapClient($wsdl_path, array('trace' => 1));

try {
    echo "<pre>\n";
    $result = $client->SOME_FUNCTION(array("request" => array("cedula" => $login_id, "contrasena" => $password)))
    print_r($result);
    echo "\n";
}
catch (SoapFault $exception) {
    echo $exception;      
} 

?>

Hi,您的详细信息在帖子的编辑历史记录中仍然可见。如果有敏感信息,请确保系统安全。