WSDL функционирует с тем же самым именем. Как выбрать тот?

Я использую поставщика wsdl с SoapClient, но когда я использую команду __ getFunctions, я получаю что-то вроде этого:

method1Rsp service(method1Req $parameters)
method2Rsp service(method2Req $parameters)
method3Rsp service(method3Req $parameters)
method4Rsp service(method4Req $parameters)
method5Rsp service(method5Req $parameters)

Так, я могу только вызвать функцию "обслуживание ()" или использование __ soapCall ('обслуживание', $info) , но я всегда получаю "method1" схему. Если я использую __ doRequest() , я могу послать метод, который я хочу в сам письменный xml, и хорошо работает, но жаль... Если я посылаю имя метода во множестве $info, оно также использует первый метод.

Question: Is there a way to call specific methods using __soapCall() or the service function, or I have to modify the wsdl?

Edit:

Вот запрос xml, используемый с __ doRequest :

<?xml version="1.0" encoding="UTF-8"?>

    
        
            
            
                
                    
                
                
                    
                
                
                
                    
                        
                    
                
            
            
            
            
        
    

Местоположение веб-сервиса http://webservicename/AirService несмотря на метод, который необходимо использовать. Это работает хорошо, но ответ также и последовательность xml. Далее больше схемы не обновляются, если я изменяю wsdl файл в будущем обновлении. Используя __ soapCall возвращает объект stdClass и получает схемы автоматически.

2
nl ja de
Даже все те сервисные имена - то же самое (через все различные крепления), обслуживание, которое URIs действительно изменяют для этого документа, разрабатывает обслуживание МЫЛА за каждое закрепление и поэтому за каждый запрос. Я поэтому попробовал бы, если местоположение и/или варианты uri SoapClient полезны здесь. Посмотрите php.net/soapclient.soapclient
добавлено автор hakre, источник
Хм, я получил различные местоположения (но не для первых двух, права), позже например: http:/ / localhost:8080/ kestrel/ FlightService - Однако, проверяют крепления, они всегда варьируются, например, AirCreateReservationBinding , AirPrePayBinding , FlightDetailsBinding , AirLowFareSearchBinding , AirLowFareSearchAsynchBinding , AirRetrieveLowFareSearchBinding , AirScheduleSearchBinding ... (есть больше операций, названных обслуживанием, чем есть те сервисные методы. Похож на вас, должен определить закрепление. Жаль никакая подсказка, как это работает до сих пор. Даже реальная идея, что это означает.
добавлено автор hakre, источник
Да с __ doRequest вы может сделать "все":) Можно ли добавить к вопросу образцовый xml такого рабочего запроса? Это могло бы помочь мне (и другие) определяют что-то.
добавлено автор hakre, источник
Местоположение всегда - то же самое, http:/ / webservicename/ AirService В зависимости от xml просят, чтобы это возвратило правильный сервисный ответ. Но поскольку я сказал, использование $client-> __ soapCall (' service' $info); или $client-> обслуживание ($info); это всегда производит первый метод xml (method1Req), неважно, что оценивает, у меня есть в $info .
добавлено автор castledom04, источник
Я перепутал также, I' ll пытаются найти путь. Я думаю, что ключ находится на wsdl и как soapClient читает его с __ doRequest , отправка письменного xml работает хорошо.
добавлено автор castledom04, источник

2 ответы

Я думаю, что можно назвать обслуживание с обычаем paramert (method1Req или method2Req, и т.д.). И библиотека PHPSoap определяет сам необходимый метод

1
добавлено
@castledom04: Хорошо, скопировать/вставить ошибка, однако я думаю, что этот ответ - больше предположение, чем "реальное" (TM) ответ на основе знания. Интересно, почему это получило upvote, если он не работает.....
добавлено автор hakre, источник
@castledom04 вы могли обеспечить WSDL?
добавлено автор Ramil Amr, источник
И как я могу сделать это? Можно ли дать мне и примеру, чтобы проверить его?
добавлено автор castledom04, источник
wsdl находится в этой связи: support.travelport.com/webhelp/uapi/Content/Resources/… Призван Air.wsdl он папка air_v21_0
добавлено автор castledom04, источник
И это - документация API support.travelport.com/webhelp/uapi/uAPI.htm
добавлено автор castledom04, источник
Копия - приклеивает ошибку, жаль: p Редактируют Сделанный.
добавлено автор castledom04, источник
Правда, ошибка новичка: (
добавлено автор castledom04, источник

Принятие вас пользуется внутренней библиотекой МЫЛА, я думаю, что можно назвать отличные операции, используя правильные параметры. Можно сделать это, используя внутренний класс помощника SoapParam. Позволяет предполагают, что method3req нужны имя пользователя и параметры логина. Если вы хотите, используют его, у вас должно быть что-то как:

 $soap = new SoapClient( $wsdl );

 class method3req{
   public $username;
   public $password;
 }

 $m3r = new method3req();

 $m3r->username = new SoapVar( 'user', SOAP_STRING, $namespace,...);
 $m3r->password = new SoapVar( 'pwd', SOAP_STRING, $namespace,...);

 $tmp = new SoapVar( $m3r, SOAP_ENV_OBJECT, $namespace, ...);
 $soap->__soapCall( 'service', $tmp ); 

Можно искать класс помощника SoapParam также.

0
добавлено
phpGeeks
phpGeeks
3 620 участник(ов)

Best PHP chat Еще: @dbGeeks - базы данных @phpGeeksJunior - новичкам @moscowProgers - IT Москва @ebanoePhp - весёлый канал о PHP @laravel_pro - Laravel @jobGeeks - вакансии @jsChat - JS Правила: https://t.me/phpGeeks/764859 ДР - 28.03.2016

PHP
PHP
1 309 участник(ов)

Группа про современный PHP. Обсуждаем ООП, TDD, BDD, DDD, SOLID, GRASP и прочие крутые базворды Для ознакомления: https://gist.github.com/mkusher/711bd46f0b62fbae851182e6fb3b1839 Группа PHP для новичков @phpGeeksJunior Вакансии: https://t.me/fordev

PHP — вакансии, поиск работы и аналитика
PHP — вакансии, поиск работы и аналитика
1 251 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению PHP, Laravel, Symfony, Yii и т.д. Здесь всё: full-time, part-time, remote и разовые подработки. См. также: @qa_jobs, @devops_jobs, @javascript_jobs, @nodejs_jobs, @uiux_jobs, @products_jobs

phpGeeksJunior
phpGeeksJunior
980 участник(ов)

Группа для новичков. Не стесняйтесь задавать вопросы по php. Не флудить!!!! Правила и полезные ссылки https://gist.github.com/exileed/a53dd0617b35a705ff44b38c8028e6a5 Бест от пхпгикс https://t.me/best_of_phpgeeks

phpclub.ru
phpclub.ru
872 участник(ов)

Официальный чат phpclub.ru - остерегайтесь подделок #rules Правила группы - уважайте друг друга. Скриншоты -> ссылками. Код -> pastebin.com. Вакансии строго -> https://goo.gl/4bNxym, в чат ссылку. За рекламу и мат - БАН!

Devall | PHP
Devall | PHP
272 участник(ов)

Пристанище для восходящих звёзд разработки, которые перейдут на более адекватные языки. http://combot.org/chat/-1001014863761 Инвайт: j.mp/devallphp