在我的項目中,我使用了Google adwords API和Yahoo API。我想通過使用flex來同時向兩個API發送請求。是否可以同時向Google和Yahoo API發送請求?
是否有可能向同一時間發送請求。如果不是我該怎麼辦?
在我的項目中,我使用了Google adwords API和Yahoo API。我想通過使用flex來同時向兩個API發送請求。是否可以同時向Google和Yahoo API發送請求?
是否有可能向同一時間發送請求。如果不是我該怎麼辦?
由於flex是基於事件的,所以這應該非常簡單。只需創建2個URLRequest對象(我假設這兩個API都是基於REST的),並設置您的GET變量。爲每個URLRequest對象創建一個loadComplete事件偵聽器,並在每個事件偵聽器中編寫處理來自兩個API的結果的代碼。
這應該做到這一點。
不是「在同一時間」,沒有。首先,你只有一個(後臺)線程可以使用,並且該線程一次只能做一件事,所以無論你編寫代碼,其中一個請求總是會首先啓動。
如果您要問的是您是否可以在一次調用中向兩個服務發送請求,則答案再次爲否(因爲兩者都有不同的URL,並且ActionScript API不會將數組作爲網址參數,它們只接受字符串)。這就是說,我想你可以「假裝它」,就是說,讓你的Flex應用程序調用你自己寫的服務 - 例如在C#中 - 並且讓該服務調用(同步)Google,然後雅虎,然後將控制權返回給您的Flex應用程序以及修改後的結果集,這些結果集分別由Google和Yahoo分別返回。
除非我誤解(或過度)了這個問題。 ;)
這裏的說明來處理調用兩個服務的一種方式一些示例代碼 - 不兼任,但一和右後外,使用mx.rpc.HTTPService:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="onCreationComplete()">
<mx:Script>
<![CDATA[
import mx.rpc.http.HTTPService;
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
private function onCreationComplete():void
{
callGoogle();
callYahoo();
}
private function callGoogle():void
{
var svc:HTTPService = new HTTPService();
svc.url = "http://api.google.com/someservice.xml";
svc.addEventListener(ResultEvent.RESULT, onGoogleResult, false, 0, true);
svc.addEventListener(FaultEvent.FAULT, onGoogleFault, false, 0, true);
svc.send();
}
private function callYahoo():void
{
var svc:HTTPService = new HTTPService();
svc.url = "http://api.yahoo.com/someservice.xml";
svc.addEventListener(ResultEvent.RESULT, onYahooResult, false, 0, true);
svc.addEventListener(FaultEvent.FAULT, onYahooFault, false, 0, true);
svc.send();
}
private function onGoogleResult(event:ResultEvent):void
{
trace(event.result);
}
private function onGoogleFault(event:FaultEvent):void
{
trace(event.fault.message);
}
private function onYahooResult(event:ResultEvent):void
{
trace(event.result);
}
private function onYahooFault(event:FaultEvent):void
{
trace(event.fault.message);
}
]]>
</mx:Script>
</mx:Application>
希望幫助!回覆評論,我會留意。
謝謝futureelite7回覆我。答案是非常好的 但如果我只在時間設置eventlistener任何一個事件。所以我怎麼做兩個API請求對象。 你能告訴我任何參考url – 2009-05-30 11:25:48