HTTPService не получает текущие данные - PullRequest
0 голосов
/ 13 октября 2010

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

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

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

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();
}

1 Ответ

0 голосов
/ 21 октября 2010

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

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

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

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

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

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

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