0

当我运行下面给出的代码时,ERROR: Invalid HTTPS client certificate path会生成错误。我检查了 certificate.pem 和 test.wsdl 的路径是否正确。这种错误的原因可能是什么?

$wsdl = 'http://localhost:10088/test/test.wsdl';

$options = array(
    'local_cert' => 'http://localhost:10088/test/certificate.pem',
    'soap_version' => SOAP_1_1
);


try {
    $client = new Zend_Soap_Client($wsdl, $options);
    $result = $client->getLastResponse();
    print_r($result);
} catch (SoapFault $s) {
    die('ERROR: [' . $s->faultcode . '] ' . $s->faultstring);
} catch (Exception $e) {
    die('ERROR: ' . $e->getMessage());
}
4

1 回答 1

0

该选项的值local_cert必须是文件路径而不是 URL。将代码更改为此$options

$options = array(
    'local_cert' => '/path_where_cert_is_stored/certificate.pem',
    'soap_version' => SOAP_1_1
);

由于Zend_Soap_Client的文档不完整,您可以查看PHP: SOAP - Manual以获取更多信息,因为这是在后台Zend_Soap_Client使用的。在我看来,可能的参数在PHP: SoapClient::SoapClient - Manual中得到了更好的描述(特别是看这个例子)。

于 2012-07-25T21:47:22.793 回答