PHP -调用SoapClient头,并返回致命错误


PHP - Call SoapClient with header, and returns fatal error

我对使用php调用SoapClient还是很陌生的。最近我有一个项目,我需要使用web服务SOAP从。net调用API。

我将无法看到web服务URL提供的实际XML代码,因为它需要头访问,因此通过POSTMAN测试,它工作得很好。

然而,当使用php调用本地主机服务器(XAMPP)上的web服务时,它不工作(其他web服务地址在下面的代码上工作良好),不确定哪里出错了:

  $Auth = array(
    'Content-Type' => 'text/xml',
    'X-RW-Auth-Token' => '4f931e62-d8c8-439b-a4d7-0c29fc0e3dbe'
);
$client = new SoapClient("https://licensed-ws.ricewarnerdigital.com/process/RiskEngine/v1.0/EndPoint.asmx?wsdl");
$header = new SoapHeader(url,null, $Auth,false);
$client->__setSoapHeaders($header);
$param = array(
    'RR_AgeNext' => '30',
    'RR_TermSI' => '1000000',
    'RR_TPDSI' => '3000000',
    'RR_AnyOwn' => 'A'
);
$GetResponse = $client->GetQuotationsForParameters($param);

错误:

致命错误:Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: could 't load from '…`:在/Applications/XAMPP/xamppfiles/htdocs/quote-tool/ricewarner_api.php中加载外部实体"…"失败:11堆栈跟踪:#0/Applications/XAMPP/xamppfiles/htdocs/quote-tool/ricewarner_api.php(11): SoapClient->SoapClient('https://license…')#1 {main}在/Applications/XAMPP/xamppfiles/htdocs/quote-tool/ricewarner_api.php中抛出

我终于让它工作了,最终SoapClient不能与包含许可层的web服务一起工作,所以我不得不使用CURl来调用。下面是代码:

类GetPremiumData {

        public function doXMLCurl($url,$postXML){
        $CURL = curl_init();
        curl_setopt($CURL, CURLOPT_URL, $url); 
        curl_setopt($CURL, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
        curl_setopt($CURL, CURLOPT_POST, 1); 
        curl_setopt($CURL, CURLOPT_POSTFIELDS, $postXML); 
        curl_setopt($CURL, CURLOPT_HEADER, false); 
        curl_setopt($CURL, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($CURL, CURLOPT_HTTPHEADER, array('Content-Type: text/xml','X-RW-Auth-Token: apiToken'));
        curl_setopt($CURL, CURLOPT_RETURNTRANSFER, true);
        $xmlResponse = curl_exec($CURL);
        return $xmlResponse;
    }
}