PDA

Просмотр полной версии : Указание типа полученных данных в HTTPService


MedvedevA
10.12.2007, 21:22
Флешка делает запрос к серверу и получает XML.
<mx:HTTPService id="httpData" url="agents/a_termgroup_page.php" useProxy="false" method="POST"
fault="Alert.show('Ошибка соединения с сервером.','Ошибка');" result="resultRequest()" showBusyCursor="true">
</mx:HTTPService>

Вид Ответа:
<result><desc>111111111111111111111111111111111111111111111111111111111111111111</desc>
<fileApp>1111111111111111111111111111111111111111111</fileApp>
<fileCheck>22222222222222222222222222222222222222222222</fileCheck>
<fileStatus>3333333333333333333333333333333333333</fileStatus>
</result>

Проблема эти длинные числа она автоматически преобразовывает в числовой вид(читает как не строку):
1.11111111111111e+65
2.22222222222222e+43
3.33333333333333e+36
И с этими числами ничего не могу сделать. Как заставить понять флешку, что все данные в ХМЛ приходят в строчном виде??

MedvedevA
10.12.2007, 23:06
Данные извлекаю так:
private function resultRequest():void{


var res:Object=httpData.lastResult.result;

name_txt.text=res.fileApp;
desc_txt.text=res.fileCheck;

}

VovkaMorkovka
13.12.2007, 15:40
А вы попробуйте указывать не объект, а строку

NikR
18.12.2007, 18:10
try:
resultFormat="e4x"

baron27
18.12.2007, 21:42
бредовая мысль, но может в CDATA ставить значения...

baron27
19.12.2007, 14:41
Провел пару тестов с получением данных через AMFPHP. Если сделать банальный
return 10000000000000000000000000000000000000000000;
то уже php выдает 1E+043.
Я не сильный пхпист, поэтому не до конца разобрался как выводить это
число строкой. Может кто скажет?
Но, насколько я понял, у тебя все берется из базы, поэтому кастить
можно при заборе этих данных:
$query = "SELECT CAST(10000000000000000000000000000000000000000000 AS
CHAR) AS str";
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_assoc($result);
$val = $row['str'];
return $val;

Вызвав во флексе:
Alert.show(res.toString());
получаю строку 10000000000000000000000000000000000000000000.

NikR
20.12.2007, 02:39
Товарищ, для этих целей существуют кавычки ))
А resultFormat="e4x" поможет, (на крайняк к httpData.lastResult.desc добавить .text() )