基本上,当我尝试连接到基于HTTPS的SOAP Web服务时,我收到错误:
SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://webservice.sample.com/ws/' : failed to load external entity "https://webservice.sample.com/ws/"
我之前尝试过这个错误的答案,其中大多数都适用于基于Windows的服务器,或者不适用于我的情况。 我在基于Linux的服务器上进行此连接。我正在使用的代码是
<?php
include('File/X509.php');
error_reporting( E_ALL );
ini_set( "display_errors", 1 );
$x509 = new File_X509();
$certfile = file_get_contents('/path/to/cert/file');
$cert = $x509->loadX509($certfile);
$openedcert = openssl_x509_parse($certfile);
$security_requests_array = array();
try {
$client = new SoapClient('webserviceendpoint', ['trace' => true, 'cache_wsdl' => WSDL_CACHE_MEMORY,'local_cert'=>'/path/to/cert/file']);
$header = new SoapHeader($security_requests_array);
$client->__setSoapHeaders($header);
print_r($client->__getLastResponse());
} catch (Exception $ex) {
var_dump($ex->faultcode,$ex->faultstring,$ex->faultactor,$ex->headerfault);
}
?>
我是基于HTTPS的SOAP webservices的新手。因此,如果您希望我提供任何其他信息,请随意。
编辑 X509.php文件来自phpseclib 1.0.1 phpseclib