Я пытаюсь использовать веб-службы MS Exchange 2007 из PHP, и моя первая ошибка (конечно) успешно проходит аутентификацию в файле wsdl при создании объекта SoapClient.
Я могу получить файл WSDL через curl, просто установив HTTPAUTH
и USERPWD
:
$exch = curl_init($exch_url);
curl_setopt($exch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($exch, CURLOPT_HTTPAUTH, CURLAUTH_NTLM);
curl_setopt($exch, CURLOPT_USERWD, $user.":".$pwd);
Это было удивительно легко. Но у меня нет возможности установить метод аутентификации в SoapClient (о котором я знаю). Я посмотрел на nu_soap, но мне не нравится какой-то из его основных подходов, и я не думаю, что мне нужна полная библиотека, только чтобы получить одну функцию, которую, я знаю, я могу получить из приведенного выше кода.
Я нашел два разных (почти идентичных) примера, показывающих, как расширить класс SoapClient для Exchange WS, но ни один из них не работал и не имел большого смысла. Главное, что я подобрал, было то, что он использовал метод __dorequest
для изменения запроса Soap перед отправкой, но документация на php.net не очень реалистичная или интуитивно понятная, поэтому я не уверен, позволит ли этот метод мне просто использовать curl для аутентификации и получения WSDL.
Может ли кто-нибудь продемонстрировать ясный и простой способ либо сначала пройти аутентификацию с помощью curl и использовать заголовки для будущих запросов SoapRequest (включая начальный поиск WSDL), либо расширить класс так, чтобы он использовал приведенный выше фрагмент кода для запроса? 1013 *