【问题标题】:calling a webservice by php -> error : no transport found or selected transport is not yet supported通过 php 调用 Web 服务 -> 错误:未找到传输或选择的传输尚不支持
【发布时间】:2012-12-21 02:45:54
【问题描述】:

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

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

这是我的代码:

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>';

ubuntu 12.04

apache2

PHP 5.3.10

在 php 上启用 cURL - 版本:7.21.3

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

我必须说,我在其他具有几乎相似条件的服务器上实现了这段代码,它们仍在工作!

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

【问题讨论】:

    标签: php web-services soap nusoap


    【解决方案1】:

    当使用命名空间时,旧的 php OOP (php4) 构造不会自动运行。 将 __construct 方法添加到所有类。 在新的 __construct 方法中调用旧的构造之后。

    或使用这个编辑过的文件 > nusoap_client.php

    【讨论】:

      【解决方案2】:

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

      根据php manual on constructors

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

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

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

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

      【讨论】:

      • 我的第二个问题通过将其他 old constructors 更改为 __construct 语法解决了!
      • 在更改为 __constructor 后您更改的位置请帮助我
      猜你喜欢
      • 2015-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多