2017-01-24 47 views
1

我試圖使用SMSPVA.com的API,當我複製並粘貼到Firefox的URL它返回JSON值,但在Actionscripts3錯誤的值出現在輸出中。 我的事情我的代碼是不正確的。ActionScripts3發佈到URL問題

我想通過URL發送數據,並在輸出窗口中用「trace」打印響應。

import flash.net.*; 

function URLRequest_method() 
{ 
    var url:String = "http://smspva.com/priemnik.php?metod=get_balance&service=opt4&apikey=HPQjg2cyfY2KhkyAjJft"; 

    var request:URLRequest = new URLRequest(url); 

    request.method = URLRequestMethod.GET; 

    var urlLoader:URLLoader = new URLLoader(); 

    urlLoader.load(request); 

    trace(request.data); 

} 

編輯:

import flash.net.*; 
import flash.events.Event; 

function URLRequest_method():void 
{ 
    var url:String = "http://smspva.com/priemnik.php?metod=get_balance&service=opt4&apikey=HPQjg2cyfY2KhkyAjJf"; 

    var request:URLRequest = new URLRequest(url); 

    request.method = URLRequestMethod.GET; 

    var urlLoader:URLLoader = new URLLoader(); 

    urlLoader.addEventListener(Event.COMPLETE, onLoaderComplete);  
    urlLoader.load(request); 

} 


function onLoaderComplete(event:Event):void 
{ 
    var urlLoader2:URLLoader = event.target as URLLoader ; 
    trace(urlLoader2.data); 
    trace(event.target.data.done); 
} 


URLRequest_method(); 

結果是正確的: 「{」 迴應 「:」 1" , 「平衡」: 「0.00」} 「

但警告秀」 ReferenceError:錯誤#1069:在String上找不到屬性,並且沒有默認值。「

什麼是錯的?

+0

呃,你確定要告訴我們你的apikey嗎? – DodgerThud

+0

是的,這是測試用戶ID,我從來沒有將它用於除測試API之外的任何目的。 –

+0

啊我明白了。關於你的問題,你有嘗試過使用GET嗎?你說你複製粘貼url到Firefox,你的意思是網址欄還是你爲此寫了一個測試網站?因爲默認情況下iirc瀏覽器URL是GET請求。 – DodgerThud

回答

0

urlLoader.load(request);是異步操作,你應該聽Event.COMPLETE事件獲得加載的數據:

UPD:

function URLRequest_method():void 
    { 
     var url:String = "http://smspva.com/priemnik.php"; 
     var postParams:URLVariables = new URLVariables("metod=get_balance&service=opt4&apikey=HPQjg2cyfY2KhkyAjJf"); 

     var request:URLRequest = new URLRequest(url); 
     request.method = URLRequestMethod.GET; 
     request.data = postParams; 

     var urlLoader:URLLoader = new URLLoader(); 

     urlLoader.addEventListener(Event.COMPLETE, onLoaderComplete); 
     urlLoader.load(request); 

    } 

    function onLoaderComplete(event:Event):void 
    { 
     var urlLoader2:URLLoader = event.target as URLLoader; 
     trace(urlLoader2.data); 

     var json:Object = JSON.parse(urlLoader2.data); 
     trace("json.response = ", json.response); 
     trace("json.balance = ", json.balance); 
    } 

輸出:

{"response":"1","balance":"0.00"} 

json.response = 1 
json.balance = 0.00 

順便說一句,你的終端不支持POST方法,只有GET

+0

謝謝,現在請檢查新代碼並告訴我問題在哪裏,如果您可以請寫出完整的代碼。 –

+0

我更新了我的答案,以獲得完整的工作代碼 – fsbmain

+0

但爲什麼我的輸出窗口是空的?沒有數據沒有警告。我在Animate CC中爲您的新代碼創建了新的ActionScripts3文檔。 –