soap — вызывает SoapClient с заголовком и возвращает фатальную ошибку

Я все еще очень новичок в использовании php для вызова SoapClient. Недавно у меня есть проект, который мне нужно вызвать API из .net с помощью веб-службы SOAP.

Я не смогу увидеть фактический XML-код URL-адреса веб-службы, поскольку для доступа к нему требуется заголовок, поэтому протестируйте его через POSTMAN, он работает хорошо.

Тем не менее, он не работает при использовании php для вызова их веб-службы на локальном сервере (XAMPP) (другой адрес веб-службы работает нормально в приведенном ниже коде), но не уверен, что это не так:

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

Ошибка:

Неустранимая ошибка: необработанное исключение SoapFault: [WSDL] SOAP-ERROR: синтаксический анализ WSDL: невозможно загрузить из ‘…’: не удалось загрузить внешний объект «…» в / Applications / XAMPP / xamppfiles / htdocs / quote- tool / ricewarner_api.php: 11 Трассировка стека: # 0 /Applications/XAMPP/xamppfiles/htdocs/quote-tool/ricewarner_api.php(11): SoapClient-> SoapClient (‘https: // лицензия…’) # 1 {main} добавлено в /Applications/XAMPP/xamppfiles/htdocs/quote-tool/ricewarner_api.php в строке 11

3

Решение

Я наконец заставил его работать, в конце концов SoapClient не смог работать с веб-сервисом, который содержит слой лицензирования, поэтому мне пришлось использовать CURl для вызова. Ниже приведен код:

class 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;
}

}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]