我工作的柔性现场,解析字符串,用动作脚本
,并从中取出& SESSION_ID = 2b7075f175f599b9390dd06f7b724ee7。
我该怎么做。
也晚些时候,当我从数据库没有session_id的URL,我会附加新的session_id它。请告诉我如何做到这一点。
问候 Zeeshan
我工作的柔性现场,解析字符串,用动作脚本
,并从中取出& SESSION_ID = 2b7075f175f599b9390dd06f7b724ee7。
我该怎么做。
也晚些时候,当我从数据库没有session_id的URL,我会附加新的session_id它。请告诉我如何做到这一点。
问候 Zeeshan
不是短期的版本,但你可以用URLVariable把所有的字段(名称,值)为对象,然后添加或删除任何你想要的字段。
单独的网址和查询:从查询
var url : String = "http://virtual.s1.c7beta.com/rpc/raw?c=Pictures&m=download%5Fpicture&key=a4fb33241662c35fe0b46c7e40a5b416&session%5Fid=2b7075f175f599b9390dd06f7b724ee7";
var idxQMark : int = url.indexOf("?");
var qry : String = "";
构建url变量
var uv : URLVariables = new URLVariables();
if (idxQMark > 0) {
qry = url.substr(idxQMark + 1);
url = url.substr(0, idxQMark);
uv.decode(qry);
}
您现在可以访问任何你需要的字段或删除
delete uv.session_id;
重建查询时需要
qry = uv.toString();
//找回你新的URL
if (qry != "") {
url = url + "?" + qry;
}
如果你不相信的SessionID将是最后一次,你可以使用AS3 string.split functionhttp在&分裂://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/ String.html#拆分%28%29
然后用一个for循环离开,通过使用该功能string.indexOf到http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/String.html#indexOf%28%29看“SESSION_ID”是指数与SESSION_ID开头的字符串重建串0
你可以在Flex中使用正则表达式...这是一个example。
假设会话ID将永远是在查询字符串中的最后一个变量:
var newStr:String = myStr.slice(0, myStr.indexOf("&session"));
对于URI解析检查出的as3corelib提供的URI类。 http://code.google.com/p/as3corelib/source/browse/trunk/src/com/adobe/net/URI.as
对于您的具体情况,您可以清除不需要的URI部分。
var url : String = "http://virtual.s1.c7beta.com/rpc/raw?c=Pictures&m=download%5Fpicture&key=a4fb33241662c35fe0b46c7e40a5b416&session%5Fid=2b7075f175f599b9390dd06f7b724ee7";
var uri : URI = new URI(url);
uri.query = "";
uri.fragment = "";
var shortenedUrl : String = uri.toString();
或者,如果你知道你想从刚刚方案,授权和路径构建您的网址(即你不需要保留端口,用户名,密码等),您可以建立网址从零件。
var shortenedUrl : String = uri.scheme + "://" + uri.authority + "/" + uri.path;
尼斯和强大。 – Aaron 2009-12-23 01:15:13
@Tegeril谢谢:) – Patrick 2009-12-23 01:39:24