Flex - usługi RPC
Flex zapewnia usługi RPC w celu dostarczania danych po stronie serwera po stronie klienta. Flex zapewnia sporą kontrolę nad danymi po stronie serwera.
Korzystając z usług Flex RPC, możemy zdefiniować akcje użytkownika, które mają być wykonywane po stronie serwera.
Usługi Flex RPC Sservices można zintegrować z dowolnymi technologiami po stronie serwera.
Jedna z usług Flex RPC zapewnia wbudowaną obsługę skompresowanych danych binarnych, które mają być przesyłane przez sieć i jest dość szybka.
Flex zapewnia następujące trzy typy usług RPC
Sr.No | Serwis i opis RPC |
---|---|
1 | HttpService Znacznik <mx: HTTPService> jest używany do reprezentowania obiektu HTTPService w pliku MXML. Kiedy wywołujesz metodę send () obiektu HTTPService, wysyła ona żądanie HTTP do określonego adresu URL i zwracana jest odpowiedź HTTP. Możesz również użyć metod HTTP HEAD, OPTIONS, TRACE i DELETE. |
2 | WebService <Mx: WebService> służy do uzyskiwania dostępu do operacji usług sieciowych zgodnych z SOAP. |
3 | RemoteObject Znacznik <mx: RemoteObject> służy do reprezentowania obiektu HTTPService w pliku MXML. Ten znacznik zapewnia dostęp do metod obiektów Java przy użyciu kodowania Action Message Format (AMF). |
Zamierzamy szczegółowo omówić usługę HTTP. Użyjemy pliku źródłowego XML umieszczonego na serwerze i uzyskamy do niego dostęp po stronie klienta za pośrednictwem usługi HTTP.
Items.xml
<items>
<item name = "Book" description = "History of France"></item>
<item name = "Pen" description = "Parker Pen"></item>
<item name = "Pencil" description = "Stationary"></item>
<items>
Deklaracja HTTPService
Teraz zadeklaruj usługę HTTPS i przekaż jej adres URL powyższego pliku
<fx:Declarations>
<mx:HTTPService id = "itemRequest"
url = "http://www.tutorialspoint.com/flex/Items.xml" />
</fx:Declarations>
Połączenie RPC
Wywołaj metodę itemRequest.send () i połącz wartości z obiektu lastResult usługi internetowej itemRequest z komponentem Flex UI.
...
itemRequest.send();
...
<mx:DataGrid id = "dgItems" height = "80%" width = "75%"
dataProvider = "{itemRequest.lastResult.items.item}">
<mx:columns>
<mx:DataGridColumn headerText = "Name" dataField = "name" />
<mx:DataGridColumn headerText = "Description" dataField = "description" />
</mx:columns>
</mx:DataGrid>
Przykład wezwania serwisu RPC
Teraz wykonajmy kroki, aby przetestować usługi RPC w aplikacji Flex -
Krok | Opis |
---|---|
1 | Utwórz projekt o nazwie HelloWorld pod pakietem com.tutorialspoint.client, jak wyjaśniono w rozdziale Flex - tworzenie aplikacji . |
2 | Zmodyfikuj HelloWorld.mxml, jak wyjaśniono poniżej. Resztę plików nie zmieniaj. |
3 | Skompiluj i uruchom aplikację, aby upewnić się, że logika biznesowa działa zgodnie z wymaganiami. |
Poniżej znajduje się zawartość zmodyfikowanego pliku mxml src/com.tutorialspoint/HelloWorld.mxml.
<?xml version = "1.0" encoding = "utf-8"?>
<s:Application xmlns:fx = "http://ns.adobe.com/mxml/2009"
xmlns:s = "library://ns.adobe.com/flex/spark"
xmlns:mx = "library://ns.adobe.com/flex/mx"
minWidth = "500" minHeight = "500" creationComplete = "init(event)">
<fx:Style source = "/com/tutorialspoint/client/Style.css" />
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
protected function init(event:FlexEvent):void {
itemRequest.send();
}
]]>
</fx:Script>
<fx:Declarations>
<mx:HTTPService id = "itemRequest"
url = "http://www.tutorialspoint.com/flex/Items.xml" />
</fx:Declarations>
<s:BorderContainer width = "630" height = "480" id = "mainContainer"
styleName = "container">
<s:VGroup width = "100%" height = "100%" gap = "10"
horizontalAlign = "center" verticalAlign = "middle">
<s:Label id = "lblHeader" text = "RPC Service Demonstration"
fontSize = "40" color = "0x777777" styleName = "heading" />
<s:Panel id = "parentPanel" title = "Using RPC Services"
width = "500" height = "200" >
<s:layout>
<s:VerticalLayout gap = "10"
verticalAlign = "middle" horizontalAlign = "center" />
</s:layout>
<mx:DataGrid id = "dgItems" height = "80%" width = "75%"
dataProvider = "{itemRequest.lastResult.items.item}">
<mx:columns>
<mx:DataGridColumn headerText = "Name" dataField = "name" />
<mx:DataGridColumn headerText = "Description"
dataField = "description" />
</mx:columns>
</mx:DataGrid>
</s:Panel>
</s:VGroup>
</s:BorderContainer>
</s:Application>
Gdy będziesz gotowy ze wszystkimi wprowadzonymi zmianami, skompilujmy i uruchom aplikację w trybie normalnym, tak jak zrobiliśmy to w rozdziale Flex - Utwórz aplikację . Jeśli wszystko jest w porządku z Twoją aplikacją, otrzymasz następujący wynik: [ Wypróbuj online ]