我正在尝试使用 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