通过 php 调用 Web 服务 -> 错误:未找到传输或尚不支持所选传输

m m*_*mov 3 php soap web-services nusoap

错误:未找到传输方式,或尚不支持所选传输方式!

当我调用网络服务时会发生此错误。

这是我的代码:

include("lib/bankmellat/nusoap.php");
$client = new \bankmellat\nusoap_client('https://pgwstest.bpm.bankmellat.ir/pgwchannel/services/pgw?wsdl');
$namespace = 'http://interfaces.core.sw.bps.com/';
$parameters = array();
$parameters['terminalId'] = $terminalId;
$parameters['userName'] = $userName;
.
.
.
$result = $client->call('bpPayRequest', $parameters , $namespace);
echo '<h2>Error!!</h2><pre>' . $client->getError(); . '</pre>';
Run Code Online (Sandbox Code Playgroud)

Ubuntu 12.04

阿帕奇2

PHP 5.3.10

cURL 在 php 上启用 - 版本:7.21.3

cURL 支持的协议:dict、file、ftp、ftps、gopher、http、https、imap、imaps、ldap、ldaps、pop3、pop3s、rtsp、smtp、smtps、telnet、tftp

我必须说,我在具有几乎相似资格的另一台服务器上实现了此代码,并且它们仍在工作!

请帮助解决这个问题..伙计们!谢谢。

m m*_*mov 5

我终于发现我的问题了!主要问题是php版本(5.3.10)!

根据php 构造函数手册

从 PHP 5.3.3 开始,与命名空间类名的最后一个元素同名的方法将不再被视为构造函数。此更改不会影响非命名空间类。

所以我将nusoap_client 类中的nusoap_client(旧的构造函数样式)函数更改为__construct并解决了问题!

现在我遇到了另一个错误并正在努力修复它:

wsdl 错误:获取https://pgws.bpm.blabla.ir/pgwchannel/services/pgw?wsdl - HTTP 错误:未知方案