Flex - RPC Hizmetleri
Flex, istemci tarafına sunucu tarafı verileri sağlamak için RPC hizmetleri sağlar. Flex, sunucu tarafı verileri üzerinde makul miktarda kontrol sağlar.
Flex RPC servislerini kullanarak, sunucu tarafında yürütülecek kullanıcı eylemlerini tanımlayabiliriz.
Flex RPC Sservices, herhangi bir sunucu tarafı teknolojisiyle entegre edilebilir.
Flex RPC Hizmetlerinden biri, sıkıştırılmış ikili verilerin kablo üzerinden aktarılması için dahili destek sağlar ve oldukça hızlıdır.
Flex, aşağıdaki üç tür RPC Hizmetini sağlar
Sr.No | RPC Hizmeti ve Tanımı |
---|---|
1 | HttpService <mx: HTTPService> etiketi, bir MXML dosyasında bir HTTPService nesnesini temsil etmek için kullanılır. HTTPService nesnesinin send () yöntemine bir çağrı yaptığınızda, belirtilen URL'ye bir HTTP isteğinde bulunur ve bir HTTP yanıtı döndürülür. HTTP HEAD, OPTIONS, TRACE ve DELETE yöntemlerini de kullanabilirsiniz. |
2 | WebService <Mx: WebService>, SOAP uyumlu web servislerinin işlemlerine erişim sağlamak için kullanılır. |
3 | RemoteObject <Mx: RemoteObject> etiketi, bir MXML dosyasında bir HTTPService nesnesini temsil etmek için kullanılır. Bu etiket, Action Message Format (AMF) kodlamasını kullanarak Java nesnelerinin yöntemlerine erişmenizi sağlar. |
HTTP Hizmetini ayrıntılı olarak tartışacağız. Sunucuya yerleştirilmiş bir XML kaynak dosyası kullanacağız ve ona HTTP Hizmeti aracılığıyla istemci tarafında erişeceğiz.
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>
HTTPService Beyanı
Şimdi bir HTTPS hizmeti bildirin ve yukarıdaki dosyanın url'sini iletin
<fx:Declarations>
<mx:HTTPService id = "itemRequest"
url = "http://www.tutorialspoint.com/flex/Items.xml" />
</fx:Declarations>
RPC Çağrısı
İtemRequest.send () yöntemine bir çağrı yapın ve itemRequest web hizmetinin lastResult nesnesinden değerleri Flex UI bileşenine bağlayın.
...
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>
RPC Servis Çağrısı Örneği
Şimdi, bir Flex uygulamasında RPC hizmetlerini test etmek için adımları izleyelim -
Adım | Açıklama |
---|---|
1 | Flex - Uygulama Oluştur bölümünde açıklandığı gibi com.tutorialspoint.client paketinin altında HelloWorld adıyla bir proje oluşturun . |
2 | HelloWorld.mxml'yi aşağıda açıklandığı gibi değiştirin . Geri kalan dosyaları değiştirmeden tutun. |
3 | İş mantığının gereksinimlere göre çalıştığından emin olmak için uygulamayı derleyin ve çalıştırın. |
Aşağıda, değiştirilmiş mxml dosyasının içeriği verilmiştir 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>
Yapılan tüm değişikliklere hazır olduğunuzda, Flex - Create Application bölümünde yaptığımız gibi uygulamayı normal modda derleyip çalıştırmamıza izin verin . Başvurunuzla ilgili her şey yolundaysa, şu sonucu verecektir: [ Çevrimiçi deneyin ]