AS3 URL string -> URLRequest

2019-05-07 08:37发布

问题:

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?

回答1:

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 );


回答2:

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


回答3:

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