Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   as 2.0 http-запрос (http://www.flasher.ru/forum/showthread.php?t=150532)

mrGreen 13.02.2011 17:04

as 2.0 http-запрос
 
доброго времени суток!
помогите советом, а то чет я сам разобраться не могу. мне нужно отправить запрос из ас 2.0 с параметром. например: http://10.0.3.27:8080/Default.aspx?02-08-02/1581/10, параметр всегда будет разный. и получить обратно ответ(ответ строка, например, Документ не найден и тд). почитав тут я на форуме понял, что мне нужно использовать LoadVars(). вот собственно код:
Код AS1/AS2:

var send_lv:LoadVars = new LoadVars();
var result_lv:LoadVars = new LoadVars();
send_lv.decode("02-08-02/1581/10");
send_lv.sendAndLoad('http://10.0.3.27:8080/Default.aspx', result_lv, 'POST')
result_lv.onLoad = function(success:Boolean)
{
        if (success)
        {
                trace(this);
        }
        else
        {
                trace('Error connecting to server.');
        }
};

и вроде запрос уходит, но ответ я получаю следующий:
%EF%BF%BD%EF%BF%BD%EF%BF%BD%20%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD=&onLoad=%5Btype%20Function%5D
подскажите как быть? :( может все и работает, да только как мне с кодировкой разобраться. по серверной части ничего сказать не могу, писал не я.

kseniya 14.02.2011 01:46

используйте onData
Код AS1/AS2:

result_lv.onData = function(data:String):Void 
{
                trace(data);
};


mrGreen 14.02.2011 02:17

используя onData я получаю следующий ответ: ��� ����
как в ас работать с кодировкой?

dark256 14.02.2011 11:48

Попробуйет во флэше написать

Код AS1/AS2:

System.useCodepage = true


mooncar 14.02.2011 11:54

Гм, не надо System.useCodepage = true, это скверная практика.
Необходимо разобраться с кодировкой.
Скрипт должен выдать ответ в кодировке utf-8, с которой работает флеш.
Не знаю, как это делается в, судя по всему, ASP, в PHP же есть соотв. функции.
В процессе отладки трейсите аргумент onData, так всё верно.

Просто если вы напишите во флешке System.useCodepage = true, то на ОС, где используется другая кодовая таблица , будут проблемы, т.е. флешка не будет универсальной.

Tails 14.02.2011 11:56

Цитата:

Сообщение от mooncar (Сообщение 973123)
Гм, не надо System.useCodepage = true, это скверная практика.

спс, ты походу сообщение дописываеш :)

mrGreen
В пхп есть функция по перегону переменных в utf 8, но там ещё дополнительная библиотека требуеться.
PHP код:

$s utf8_encode($s); 

Лучше просто сохранить документ в utf-8 и ноу проблем.

mooncar 14.02.2011 12:06

Никаких похождений.
PHP код:

$str iconv('Windows-1251''UTF-8'$str); 

Тем более, что если какой-то обрабатываемый скриптом документ или сам скрипт оперирует данными изначально в utf-8, то это и не требуется.
Автору, возможно, будет достаточно пересохранить сам скрипт в UTF-8 в любом простом текстовом редакторе типа Блокнота.

mrGreen 14.02.2011 13:54

я только что попробовал этот запрос в php и действительно, asp выдает ответ в win1251. и при помощи iconv эту проблему можно решить. но проблема в том, что серверная часть на asp.net, а я в ней ну не в зуб ногой. я уже попросил сотрудника переписать серверную часть, чтобы выдавал ответ на utf-8. жду результат. надеюсь после этого во флеше я буду получать разумные ответы

mrGreen 14.02.2011 16:18

и еще вопрос:
до того, как использовать sendAndLoad я проверял на
Код AS1/AS2:

 send_lv.send('http://10.0.3.27:8080/Default.aspx', _blank, 'POST')

, чтобы проверить как он подставляет параметр. и я заметил, что он меняет / на %2F, чего мне абсолютно не надо и в конце параметра ставит = (вот что происходит с параметром 02-08-02%2F1581%2F10=). :( подскажите пожалуйста как мне избежать подобной деформации параметра?

mooncar 17.02.2011 19:47

1) Приведите полный код, т.е. все, что связано с работой LoadVars.
И еще. К чему у вас в примере в начале топика decode ? Что вы пытаетесь сделать?
Синтаксис для отправки данных такой:
Код AS1/AS2:

send_lv.var1 = значение1;
send_lv.var2 = значение2;
send_lv.sendAndLoad('http://10.0.3.27:8080/Default.aspx',  result_lv, 'POST');


2) К чему у вас в примере в начале топика decode ? Какова цель применения этого метода?


Часовой пояс GMT +4, время: 00:19.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.