Мне нужно вызвать мыльный Web-сервис, который нуждается в базовой аутентификации. Я попробовал SoapUI с базовой аутентификацией и он работает. Страницу WSDL можно корректно загрузить из браузера. Нет проблем, связанных с SSL.
Я пытаюсь сделать тот же вызов с SoapClient, но не работает. Как я понимаю (с помощью Burp Software) заголовок аутентификации не отправляется с soapClient.
Хотя у меня возникла эта проблема, я проверил почти все опубликованные вопросы в StackOverflow и попробовал все, что они предложили.
Вот мой PHP-код, над которым я работаю:
echo "<pre>";
$WSDL_URL='https://myserver.com/services/?wsdl';
$username='xxx';
$password='yyy';
$params = array(
'login' => $username,
'password' => $password,
'trace' => 0,
'exceptions' => 0,
'location' => $WSDL_URL,
'uri' => $WSDL_URL
);
$soap = new SoapClient(null, $params);
$RESULT = $soap->serviceTest( 'HELLO' );
echo "<h1>ServiceTEST Result:</h1>";
print_r($RESULT);
Вот моя ошибка:
SoapFault Object
(
[message:protected] => Client Error
[string:Exception:private] =>
[code:protected] => 0
[file:protected] => /Applications/MAMP/htdocs/soap/test.php
[line:protected] => 24
[trace:Exception:private] => Array
(
[0] => Array
(
[file] => /Applications/MAMP/htdocs/soap/test.php
[line] => 24
[function] => __call
[class] => SoapClient
[type] => ->
[args] => Array
(
[0] => serviceTest
[1] => Array
(
[0] => HELLO
)
)
)
)
[previous:Exception:private] =>
[faultstring] => Client Error
[faultcode] => s:Client
)