Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: как вытянуть необходимые данные из wsdl?
Форумы портала PHP.SU » » XML и его обработка » как вытянуть необходимые данные из wsdl?

Страниц (1): [1]
 

1. sc2r2bey - 10 Ноября, 2016 - 12:52:53 - перейти к сообщению
собственно никогда не работал с soap.
есть сервис, реализованный через WSDL.
задача научиться писать и получать запросы.
документация отсутствует.
как вытащить информацию по работе с этим сервисом?

создал экземпляр класса:
PHP:
скопировать код в буфер обмена
  1. $client = new SoapClient('url',
  2.                           array('soap_version'   => SOAP_1_1));


далее смотрю доступные методы:


получаю:
Цитата:
array(8) {
[0]=>
string(80) "PackageSearchOptionsResponse GetOptions(PackageSearchOptionsRequest $parameters)"
[1]=>
string(62) "PackageSearchResponse Search(PackageSearchRequest $parameters)"
[2]=>
string(83) "PackagePriceDynamicResponse GetPriceDynamic(PackagePriceDynamicRequest $parameters)"
[3]=>
string(111) "GetDetailedSearchResultItemResponse GetDetailedSearchResultItem(GetDetailedSearchResultItemRequest $parameters)"
[4]=>
string(80) "PackageSearchOptionsResponse GetOptions(PackageSearchOptionsRequest $parameters)"
[5]=>
string(62) "PackageSearchResponse Search(PackageSearchRequest $parameters)"
[6]=>
string(83) "PackagePriceDynamicResponse GetPriceDynamic(PackagePriceDynamicRequest $parameters)"
[7]=>
string(111) "GetDetailedSearchResultItemResponse GetDetailedSearchResultItem(GetDetailedSearchResultItemRequest $parameters)"
}


что с этим делать, куда дальше?
2. Мелкий - 10 Ноября, 2016 - 13:40:16 - перейти к сообщению
От __getFunctions получили объявления методов в формате: (возвращаемое значение) имя_функции(тип_параметра имя_параметра)
__getTypes подскажет, что подразумевается в этих типах.

Вызов метода через __soapCall или из-за магического метода, $soapClient->method_name. В качестве структуры сгодится ассоциативный массив.
3. sc2r2bey - 10 Ноября, 2016 - 14:01:52 - перейти к сообщению
не совсем понятно, вот смотрите, первый элемент массива:
Цитата:
"PackageSearchOptionsResponse GetOptions(PackageSearchOptionsRequest $parameters)"

Если через __getTypes смотреть, то получается:
Цитата:
array(174) {
[0]=>
string(82) "struct PackageSearchOptionsRequest {
PackageSearchOptionsParameters Parameters;
}"

GetOptions нигде не фигурирует и при попытки ее вызвать выдается сообщение, что она не определена
4. Sail - 10 Ноября, 2016 - 14:15:28 - перейти к сообщению
sc2r2bey, можно в браузере открыть тот URL и анализировать полученный xml
Например: сервис того самого реестра
5. sc2r2bey - 10 Ноября, 2016 - 14:17:30 - перейти к сообщению
[quote=Sail][/quote]и как понять, что за что отвечает?

 

Powered by ExBB FM 1.0 RC1