2012-07-21 133 views
0

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

$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()); 
} 

回答

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更好描述(尤其是看例子)。