2010-10-13 3 views
0

Я использую mx.rpc.http.HTTPService для извлечения данных из веб-службы. При первоначальном вызове «loadWsData», HTTP-сервис точно извлекает все данные.HTTPService не извлекает текущие данные

Однако при любых последующих вызовах HTTPService не точно извлекает данные; скорее, он всегда извлекает первый набор данных. Я подтвердил, что веб-служба предоставляет точные данные, как из веб-браузеров, так и из сценария клиента ruby ​​ws.

Мой код ниже; любые идеи о том, что может быть проблемой?

private function loadWsData(id:int):void 
{ 
    var webService:HTTPService = new HTTPService(); 
    webService.url = "http://xxx.xxx.xxx.xxx:8080/profile/ + id; 
    webService.method = "GET";  
    webService.addEventListener(ResultEvent.RESULT, function(event:ResultEvent):void 
    { 
     var rawData:String = String(event.result); 
     var user:Object = JSON.decode(rawData).user; // User object always reflects the first data set retrieved. 
     .... 
     .... 
    }); 
    webService.send(); 
} 
+0

Отмените источник данных на любой связанный экранный объект. –

+0

Является ли сервер кешированием? Вы можете попробовать добавить случайную переменную URL в URL-адрес, чтобы заставить сервер не кэшировать URL-адрес. Это мое лучшее предположение. – JeffryHouser

+0

Служба не кэширует. Я попробовал добавить случайную переменную url в любом случае, но это не сработало. Любые другие предложения? – dank106

ответ

0

Не знаю, в чем проблема, но у меня есть несколько предложений о том, где искать.

Во-первых, в вашем коде есть ошибка; в строке webService.url отсутствует метка кавычки. Это может быть испортить URL-адрес вы думаю вы отправляете. Странно, однако, потому что я не думаю, что то, что вы показали, будет компилироваться, поэтому я подозреваю, что это просто ошибка с вырезанием и вставкой, когда вы разместили это в StackOverflow, но я бы проследил этот URL, чтобы быть уверенным.

Кроме того, я не вижу код для удаления прослушивателя событий (хотя он может быть в коде, который вы сократили с помощью многоточия). Возможно ли, что есть затяжные слушатели событий, которые стреляют в дополнение к тем, которые вы ожидаете? Если запускается прослушиватель исходного события, он будет запускаться с исходными данными.

Другое предложение: вместо использования замыкания попробуйте вытащить его на отдельную функцию. Это не должно быть проблемой, но, возможно, область играет здесь роль.

Вы можете попробовать выполнить POST-результаты.

Вы также можете добавить прослушиватель событий для FAULT и посмотреть, есть ли какие-либо ошибки, вызванные вашим запросом на обслуживание.

Смежные вопросы