来自PHP的SOAP请求不起作用
我有一个可用的web服务@,我正试图发送一个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
一些函数
,其中包含这两个参数,但仍然无法通过连接
这是我的代码:
<?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,您的详细信息在帖子的编辑历史记录中仍然可见。如果有敏感信息,请确保系统安全。