Хорошо. Итак, у меня установлена служба WSDL, и я могу получить к ней доступ по следующему URL:
сервер1 / AccessService / StockControlService.svc
И когда я просматриваю эту страницу, я получаю длинную страницу XML. В этом XML есть элементы с именем operations
, которые являются именами функций, которые я использую. Например, есть функция с именем StockPrice_Return
.
Однако у каждой функции есть определенный набор параметров, через которые вы должны передать ей, чтобы получить результат обратно. В Google Chrome я установил расширение под названием Wizdler, которое позволяет мне щелкнуть имя функции и увидеть следующий XML:
<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
<Body>
<StockPrice_Return xmlns="http://tempuri.org/">
<!-- Optional -->
<request>
<Ticket xmlns="http://schemas.datacontract.org/2004/07/AccessUKWebService.DimensionsWebService">[string?]</Ticket>
<PriceLineNo xmlns="http://schemas.datacontract.org/2004/07/AccessUKWebService.DimensionsWebService">[string?]</PriceLineNo>
<PriceType xmlns="http://schemas.datacontract.org/2004/07/AccessUKWebService.DimensionsWebService">[string?]</PriceType>
<StockCode xmlns="http://schemas.datacontract.org/2004/07/AccessUKWebService.DimensionsWebService">[string?]</StockCode>
</request>
</StockPrice_Return>
</Body>
</Envelope>
Это замечательно, так что из этого видно, что мне нужны Ticket, PriceLineNo, PriceType и StockCode, чтобы иметь возможность запрашивать эту функцию.
Однако у меня есть несколько служб WSDL, каждая из которых функционирует более 20 или более. Я хочу иметь возможность генерировать с помощью PHP функции и параметры самостоятельно.
Функция PHP Soap, похоже, обладает такой способностью. Есть __getFunctions()
и __getTypes()
, но ни один из них, похоже, не возвращает данные, которые я ищу.
Я не знаю, как расширение chrome получает этот XML выше, но если бы я мог просто вернуть его сам, я мог бы создать синтаксический анализатор XML в своем браузере. Я скачал SoapUI, и ему тоже удалось найти вышеуказанный XML. Но нет, где я могу найти документацию о том, как получить проклятые параметры! Это сводит меня с ума!