如何在PHP中调试Soap



我正在尝试使用 PHP 向服务器发出 SOAP 请求,但我在运行时得到的只是"无法连接到主机">

$this->client->__soapCall("aMethod()", [$request_param_array]));

我认为 WSDL 很好,因为我可以在浏览器中和运行时访问它

$this->client->__getFunctions();

我确实收到可用函数的列表(如本 wsdl 中指定(。

我确实需要一个证书来对该服务器进行 SOAP 调用,所以也许这就是问题所在?但是我不知道如何调试导致此"无法连接到主机"错误的原因。

任何想法会导致此错误发生或我如何找到问题?

到目前为止我的代码:

public function __construct($url, $wsdl = null)
{
    $this->wsdl = $wsdl != null ? $wsdl : $url . '?wsdl';
    $this->client = new SoapClient($this->wsdl, array(
        "trace" => "1",
        "local_cert" => realpath(__DIR__ . DIRECTORY_SEPARATOR . ".." . DIRECTORY_SEPARATOR . ".." . DIRECTORY_SEPARATOR . "..") . "cert.pfx",
        "passphrase" => "admin",
    ));
    Log::info(sprintf("New SoapClient created with WSDL: '%s'", $this->wsdl));
}

我后来使用 SoapUI 围绕这些与 SOAP 相关的问题进行了更多调试。SoapUI给了我一个"SSL握手"异常。事实证明,这是一个无效的私钥证书,与我连接到的 SOAP 服务器上的公钥证书不匹配。

虽然,我仍然不知道如何在 PHP 中调试这样的问题。有什么想法吗?让我知道。

相关内容

  • 没有找到相关文章

最新更新