AS3 URL string -> URLRequest

2019-05-07 08:30发布

I'm using some loader that doesn't accept products.php?cat=10 as a target because it's too stupid to figure out what's the file name and what's the query string. Is there an AS3 function that will parse an URL and return a URLRequest based on variables in the query string?

3条回答
女痞
2楼-- · 2019-05-07 08:46

There is possibility to create all you need:

import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.net.URLVariables;
import flash.net.URLRequestMethod;
import flash.events.Event;

// the path to the backend file
var url : String = 'http://youdomain.com/filepath.php';

// url variables all which will appear after ? sign
var urlVariables : URLVariables = new URLVariables ();
    urlVariables['varname'] = 'varvalue';
    urlVariables['varname1'] = 'varvalue1';
    // here you can add as much as you need

// creating new URL Request
// setting the url
var request : URLRequest = new URLRequest  ( url );
    // setting the variables it need to cary
    request.data = urlVariables;
    // setting method of delivering variables ( POST or GET )
    request.method = URLRequestMethod.GET;

// creating actual loader
var loader : URLLoader = new URLLoader ();
    loader.addEventListener( Event.COMPLETE, handleLoaderComplete )
    loader.load ( request );
查看更多
三岁会撩人
3楼-- · 2019-05-07 08:49

There should be no problems with urls like products.php?cat=1. Maybe you just forgot to put crossdomain.xml on your server. I suppose, it's the most frequent error while using URLRequest

查看更多
走好不送
4楼-- · 2019-05-07 09:05

You can use URLVariables.decode() to convert the query string into properties of the URLVariables object:

function getProperURLRequest ( url : String ) : URLRequest
{
    var input : Array = url.split("?");
    var urlVars : URLVariables = new URLVariables ();
    urlVars.decode( input[1] );

    var urlReq : URLRequest = new URLRequest ( input[0] );
    urlReq.data = urlVars;
    urlReq.method = URLRequestMethod.GET;

    return urlReq;
}
查看更多
登录 后发表回答