Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Передача параметров WebService (http://www.flasher.ru/forum/showthread.php?t=152705)

Haiat 22.03.2011 15:06

вот так пытаюсь передать, он выдает ту же большую ошибку, но только вместо "фатальная ошибка ?" пишет "фатальная ошибка нет данных для авторизации"
Код AS3:

private function button_click():void {
                                var arguments:Object = {parameters: {agent: '1', password: '2',salesPoint:'SKY-BUTIK',locale:'en'}};
 
                webService.searchSchedule.send(arguments);
            }


alatar 22.03.2011 15:19

Ну это уже с серверниками выясняйте, что они ожидают получить. Без описания типа, не ясно какие данные ожидаются.
Попробуйте просто передать:
Код AS3:

{agent: '1', password: '2',salesPoint:'SKY-BUTIK',locale:'en'}


Haiat 22.03.2011 15:24

Спасибо alatar, да я им этот вопрос уже с утра задал. жду ответа, а пока пытаюсь сам во все вникнуть, как оно работает во flex.

а по поводу связки с графикой, как я понимаю, я могу сделать swf во FLASH, сюда его импортировать, и буду иметь доступ к мувикам которые там есть?

хочу сделать прелоадер, пока грузятся данные

Цитата:

сам во все вникнуть
это я конечно загнул)) с Вашей помощью)

alatar 22.03.2011 15:31

Цитата:

а по поводу связки с графикой, как я понимаю, я могу сделать swf во FLASH, сюда его импортировать, и буду иметь доступ к мувикам которые там есть?
С теми же условиями, что и в pureAS3.

Добавлено через 37 секунд
Ну и как бы это уже другой вопрос.

Haiat 22.03.2011 16:59

а как можно проверить загрузился ли WDSL или нет?

грубо говоря, мне это нужно для того чтобы сделать кнопку "данные приняты - посмотреть"?

смотрел тут: http://help.adobe.com/ru_RU/AS3LCR/F...rvice.html#top

кстати не совсем понял почему там нет моей функции send, в документации. Это разные пакеты?

alatar 22.03.2011 17:20

Цитата:

а как можно проверить загрузился ли WDSL или нет?
Будет отправлено событие LoadEvent.LOAD
Цитата:

кстати не совсем понял почему там нет моей функции send, в документации.
send() у AbstractOperation, в не у WebService. Когда вы пишете:
Код AS3:

webService.searchSchedule.send();

это равнозначно
Код AS3:

var operation:AbstractOperation =  webService.getOperation("searchSchedule");
operation.send();


Haiat 23.03.2011 14:35

Появилась информация касательно типа. Подскажи пожалуйста как правильно запрос составить

Цитата:

Все вызовы веб-сервиса требуют передачи набора параметров, характеризующих контекст вызывающего агента. В WSDL этотконтекст описантипом AuthContext.
еще есть файл xml,в котором нашел следующее
Код AS3:

<xs:complexType name="AuthContext"> 
<xs:sequence>
<xs:element name="locale" type="xs:string" />
<xs:element name="agent" type="xs:string" />
<xs:element name="password" type="xs:string" />
<xs:element name="salesPoint" type="xs:string" />
<xs:element name="customer" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>


alatar 23.03.2011 14:51

Код AS3:

var operation:AbstractOperation  = webService.getOperation("searchSchedule");
var arguments:Object = {parameters: {locale: "en" agent: "bond", password: "james bond", salePoints:"SKY-BUTIK", customer:"casino royal"}};
operation.arguments = arguments;
operation.send();

или в виде xml
Код AS3:

var arguments:XML = new XML('<parameters>
    <locale>en</locale>
    <agent>bond</agent>
    <password>james bond</password>
    <salesPoint>SKY-BUTIK</salesPoint>
    <customer>casino royal</customer>
</parameters>'
);


Haiat 23.03.2011 18:22

Наконец то стал въезжать) ну и замудрено же все))

вопрос такой: когда я передаю параметры по следующей схеме. стоит ли обращать внимание на <xs:sequence> <xs:complexType> <xs:element name="route"> ?

я имею ввиду нужно ли как то в моем XML который я отправляю их указывать?
Код:

<xs:complexType name="FlightSearchParameters">
  <xs:complexContent>
    <xs:extension base="tns:BaseParameters">
      <xs:sequence>
        <xs:element name="airlines">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="airline" type="tns:DictionaryItem" maxOccurs="unbounded" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="route">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="segment" type="tns:RouteSegment" maxOccurs="unbounded" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="adults" type="xs:int" />
        <xs:element name="children" type="xs:int" />
        <xs:element name="infants" type="xs:int" />
        <xs:element name="serviceClass" type="tns:classOfService" minOccurs="0" />
        <xs:element name="directOnly" type="xs:boolean" />
        <xs:element name="mixedVendors" type="xs:boolean" />
        <xs:element name="dateTolerance" type="xs:int" />
      </xs:sequence>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>


alatar 23.03.2011 18:52

Нет. Это просто описание объекта. Можно использовать это для создания объектов во флексе, если указать для операции resultFormat = "object".
По-умолчанию, если указан "object" WebService будет штамповать объекты со свойствами которые указаны в типах. Если дополнительно, для WebService, установлен makeObjectsBindable = true (установлен по-умолчанию), то будут созданы ObjectProxy, для которых возможен биндинг.
Но все это, при более-менее большом количестве объектов, весело тормозит.
Для каждой операции можно указать свой encoder и decoder, который будет выдавать нужные объекты.


Часовой пояс GMT +4, время: 20:56.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.