![]() |
Передача параметров WebService
Все доброго времени суток:
если взять на примере из одного блога следующий скрипт, как передать параметры? Код AS3:
Цитата:
так? Изначально думал что нужно вставлять их в тэг operation, но там оказывается нельзя пользовательские параметры вставлять пробовал так: Код AS3:
Цитата:
|
А так?
Код AS3:
|
как я понимаю result выполняется если все нормально, а fault если ошибка.
ну так вот если я вообще параметры не передаю, то срабатывает result , вызывается функция: Код AS3:
Цитата:
Код AS3:
Цитата:
|
Цитата:
Код:
<wsdl:message name="getMonthsRequest"></wsdl:message> |
alatar я это понимаю! я просто как пример спрашиваю! то есть у меня другой пример,
все ошибки я выложил со своего примера. то есть клиент говорит мне что должны передаваться 4 параметра для авторизации. в самом WDSL описании я их не увидел нигде(наверно их не должно быть там видно,или должно?) Цитата:
спасибо |
Цитата:
|
вот у меня такой скрипт:
Код AS3:
в нем я не вижу параметров agent и password, но мне говорят что их нужно передавать для авторизации что я делаю не так? потому что я вызываю метод - а он возвращает ошибки которые я выше писал |
У меня не выдает этот wsdl, выложите все, что в message для searchSchedule
|
посмотрите исходный код, открывшейся страницы.
там есть это Код:
<message name="searchSchedule"> Код:
<operation name="searchSchedule"> Код:
<operation name="searchSchedule"> |
Ну он принимает некие parameters, странно, что тип не указан.
Обычно описывается в виде complexType или simpleType. Скорее всего, что-то типа: Код AS3:
|
вот так пытаюсь передать, он выдает ту же большую ошибку, но только вместо "фатальная ошибка ?" пишет "фатальная ошибка нет данных для авторизации"
Код AS3:
|
Ну это уже с серверниками выясняйте, что они ожидают получить. Без описания типа, не ясно какие данные ожидаются.
Попробуйте просто передать: Код AS3:
|
Спасибо alatar, да я им этот вопрос уже с утра задал. жду ответа, а пока пытаюсь сам во все вникнуть, как оно работает во flex.
а по поводу связки с графикой, как я понимаю, я могу сделать swf во FLASH, сюда его импортировать, и буду иметь доступ к мувикам которые там есть? хочу сделать прелоадер, пока грузятся данные Цитата:
|
Цитата:
Добавлено через 37 секунд Ну и как бы это уже другой вопрос. |
а как можно проверить загрузился ли WDSL или нет?
грубо говоря, мне это нужно для того чтобы сделать кнопку "данные приняты - посмотреть"? смотрел тут: http://help.adobe.com/ru_RU/AS3LCR/F...rvice.html#top кстати не совсем понял почему там нет моей функции send, в документации. Это разные пакеты? |
Цитата:
Цитата:
Код AS3:
Код AS3:
|
Появилась информация касательно типа. Подскажи пожалуйста как правильно запрос составить
Цитата:
Код AS3:
|
Код AS3:
Код AS3:
|
Наконец то стал въезжать) ну и замудрено же все))
вопрос такой: когда я передаю параметры по следующей схеме. стоит ли обращать внимание на <xs:sequence> <xs:complexType> <xs:element name="route"> ? я имею ввиду нужно ли как то в моем XML который я отправляю их указывать? Код:
<xs:complexType name="FlightSearchParameters"> |
Нет. Это просто описание объекта. Можно использовать это для создания объектов во флексе, если указать для операции resultFormat = "object".
По-умолчанию, если указан "object" WebService будет штамповать объекты со свойствами которые указаны в типах. Если дополнительно, для WebService, установлен makeObjectsBindable = true (установлен по-умолчанию), то будут созданы ObjectProxy, для которых возможен биндинг. Но все это, при более-менее большом количестве объектов, весело тормозит. Для каждой операции можно указать свой encoder и decoder, который будет выдавать нужные объекты. |
Допустим я вызываю следующий метод "searchFlights".
смотрю в описании Код:
<xs:complexType name="searchFlights"> Код:
<xs:complexType name="FlightSearchParameters"> Код:
<xs:complexType name="BaseParameters" abstract="true"> Код:
<xs:complexType name="AuthContext"> пытаюсь это структурировать, но что то даже не очень хорошо понимаю как это будет выглядеть |
complexType в контексте as3 это объекты, element – свойства объекта, name у элемента – имя свойства, extension (судя по-всему) указывает на то, что FlightSearchParameters наследуется от BaseParameters.
|
а sequence?
|
Перечисление свойств.
|
то есть мне нужно описывать через объекты? или реально чисто XML дать запрос
и если реально просто через XML запрос, то что значит наследование в данном случае, |
Цитата:
Цитата:
|
если <xs:sequence> - перечисление свойств, то получается как то так
Код:
<parametres airlines='**' route='**' adults='**' ... />Код:
<xs:complexType name="FlightSearchParameters"> или я не совсем правильно понимаю. и почему то сомнительно что airlines это такое свойство если element Это свойство, то как у него еще element есть? не может ли быть sequence это рядов вложенных объектов? |
Цитата:
Код:
<parametres> |
а в атрибуты к parametres идут свойства agent password? или как то по другому они?
Спасибо |
Что бы я вам советовал сделать:
Выберите сначала все типы объектов (более того, если уж сервисы на Яве - может вам дадут Ява код посмотреть, может понятнее будет). После чего Создайте AS3 классы с такими же именами и свойствами. После чего, отнаследуйте их всех от какого-нибудь DAO-like (Data Access Object) класса с методом toXML() который будет обобщенно конвертировать класс (его публичные свойства) в XML. Соответственно, если свойство / элемент коллекции в свойстве является наследником DAO - то при такой вот "сериализации" вызвать у него тоже toXML(). Это примерно то же самое, что делает фреймворк, когда подгатавливает ответ сервиса. Но если вы это сами сделаете руками один раз - быстрее поймете, что от вас требуется. Кса sequence - это скорее вектор все-таки, если так к этому подходить. |
Цитата:
|
а куда вставляются тут данные для авторизации?
|
Код:
<parametres> |
делаю следующий запрос:
Код AS3:
Код:
(mx.messaging.messages::ErrorMessage)#0Код:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body>выдает почти такую же ошибку Код:
ERROR!!!!!!! (mx.messaging.messages::ErrorMessage)#0правильно ли я оформляю запрос через SOAP - и нужно ли передавать тег <?xml....?>, если да то как правильно его вписать? flex на синтаксис ругается Спасибо) думаю буквально это последние вопросы, и я разберусь с этим |
Цитата:
Цитата:
Цитата:
|
я имел ввиду, что программисты со стороны клиента говорят что не по стандарту SOAP. ))
а то что не может соедениться с сервером я понимаю. вот в чем только дело? раз он возвращает что то значит соеденяется же, но неправильно (что то не так с запросом наверно). вот я и хочу понять в чем дело. а что значит Cannot find dispatch method for {http://schemas.xmlsoap.org/soap/envelope/} ? ведь по ссылке нормально проходит, как я понял всегда это добавляют, это же схема. почему он её как метод интересно воспринимает |
Цитата:
|
Не, не совсем... достучатся вы до сервера достучались, но сервер вернул статус 500 - это значит "внутренняя ошибка сервера". Как правило виноват сервер в таком случае, в любом случае в продакшне такого быть не должно. Ну а во время тестов это значит что вы как-то не так обратились, сервер такого ожидал.
Как проще всего проверить. Попросите у разработчиков серверной части образец запроса, как они думают, что он должен приходить. Поставьте какой-нибудь firebug / httpfox / wireshark или любой другой анализатор траффика (сниффер), и посмотрите, что вы отправляете. Сравните с образцом. Так сразу будет понятно, что вы делаете не так. |
Да я уже запросил от них пример запроса, просто ребята долгие очень, пока отвечают сам пытаюсь разобраться.
Запрос я свой выше писал, а встал вопрос - как сделать запрос полностью на XML, то есть как и метод передать с помощью XML? |
Цитата:
|
| Часовой пояс GMT +4, время: 18:19. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.