У меня есть небольшая проблема, которую я не могу решить.
Я пытаюсь подключиться к SOAP API (criteo), который прекрасно работает с SoapUI.
Когда я пытаюсь повторить логику, например, php я получаю авторизацию. ошибки.
Я уверен, что информация заголовка не передана правильно (я уже пробовал несколько решений, которые я нашел здесь безрезультатно).
Это запрос в SoapUI:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v20="https://advertising.criteo.com/API/v201010">
<soapenv:Header>
<v20:apiHeader>
<v20:authToken>12345</v20:authToken>
<v20:appToken>123456</v20:appToken>
</v20:apiHeader>
</soapenv:Header>
<soapenv:Body>
<v20:getReportDownloadUrl>
<v20:jobID>12345</v20:jobID>
</v20:getReportDownloadUrl>
</soapenv:Body>
</soapenv:Envelope>
В php я создал такой заголовок:
/*
* wsdl: https://advertising.criteo.com/API/v201010/AdvertiserService.asmx?WSDL
*/
$authTokens = new stdClass();
$authTokens->authToken = 12345;
$authTokens->appToken = '123456';
$header = new SoapHeader('https://advertising.criteo.com/API/v201010/AdvertiserService.asmx', "apiHeader", $authTokens, true);
$client->__setSoapHeaders(array($header));
print_r($client->getAccount());
Когда я запускаю скрипт, я получаю сообщение об ошибке:
Uncaught SoapFault exception: [soap:Receiver] Server was unable to process request. ---> Unable to cast object of type 'System.Web.Services.Protocols.SoapUnknownHeader' to type 'Criteo.WebService.DataModel.apiHeader'
Может кто-нибудь дать мне подсказку?
Спасибо за помощь.
Получил ту же проблему. Измените значение пространства имен на https://advertising.criteo.com/API/v201010 от https://advertising.criteo.com/API/v201010/AdvertiserService.asmx
Других решений пока нет …