我正在开发一个弹性网站,
并从中删除& session_id = 2b7075f175f599b9390dd06f7b724ee7。
我该怎么办?
稍后当我从没有session_id的数据库中获取url时,我会将新的session_id附加到它。请告诉我怎么做。
此致 Zeeshan
答案 0 :(得分:4)
不是短版本,但您可以使用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();
//找回新的网址
if (qry != "") {
url = url + "?" + qry;
}
答案 1 :(得分:2)
对于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();
或者,如果您知道要从方案,权限和路径构建您的URL(即,您不需要保留端口,用户名,密码等),您可以从部分构建URL。 / p>
var shortenedUrl : String = uri.scheme + "://" + uri.authority + "/" + uri.path;
答案 2 :(得分:1)
如果你不确定sessionid会不会是最后一次,你可能会分开&使用as3 string.split functionhttp://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/String.html#split%28%29
然后使用for循环重建字符串,使用string.indexOf函数http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/String.html#indexOf%28%29省略以session_id开头的字符串,以查看“session_id”是否在索引0
答案 3 :(得分:0)
您可以在Flex中使用正则表达式...这里是example。
答案 4 :(得分:0)
假设会话ID始终是查询字符串中的最后一个变量:
var newStr:String = myStr.slice(0, myStr.indexOf("&session"));