ActionScripts3 POST to URL issue



我正在尝试使用 SMSPVA.com 的API,当我将URL复制并粘贴到Firefox时,它会返回json值,但是在Actionscripts3中,输出中出现了错误的值。我觉得我的代码不对。

我想通过 URL 发布数据并在输出窗口中使用"跟踪"打印响应。

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"}"

但也会显示警告:"引用错误:错误 #1069:在字符串上找不到属性,并且没有默认值。

出了什么问题?

urlLoader.load(request);

异步操作,您应该侦听Event.COMPLETE事件以获取加载的数据:

上级:

    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

最新更新