Разбор строки с использованием скрипта действия - PullRequest
1 голос
/ 23 декабря 2009

Я работаю на гибком сайте,

Я хочу разобрать строку ниже: http://virtual.s1.c7beta.com/rpc/raw?c=Pictures&m=download_picture&key=a4fb33241662c35fe0b46c7e40a5b416&session_id=2b7075f175f599b9390dd06f7b724ee7

и удалите из него & session_id = 2b7075f175f599b9390dd06f7b724ee7.

Как мне это сделать.

также позже, когда я получу URL из базы данных без session_id, я присоединю к нему новый session_id. Пожалуйста, скажите мне, как это сделать тоже.

С уважением Зеешан

Ответы [ 5 ]

4 голосов
/ 23 декабря 2009

Не короткая версия, но вы можете использовать URLVariable, чтобы получить все поля (имя, значение) в объект, а затем добавить или удалить любое поле, которое вы хотите.

Отдельный URL и запрос:

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;
}
2 голосов
/ 20 сентября 2011

Для анализа URI проверьте класс URI, предоставленный в as3corelib. 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-адрес из частей.

var shortenedUrl : String = uri.scheme + "://" + uri.authority + "/" + uri.path;
1 голос
/ 23 декабря 2009

Если вы не уверены, что sessionid будет последним, вы можете разделить на & с помощью функции as3 string.split http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/String.html#split%28%29

затем перестройте строку, используя цикл for, пропуская строки, начинающиеся с session_id, используя функцию string.indexOf http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/String.html#indexOf%28%29, чтобы увидеть, имеет ли значение "session_id" индекс 0

0 голосов
/ 23 декабря 2009

Предполагая, что идентификатор сеанса всегда будет последней переменной в строке запроса:

var newStr:String = myStr.slice(0, myStr.indexOf("&session"));
0 голосов
/ 23 декабря 2009

Вы можете использовать регулярные выражения во Flex ... вот пример .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...