为什么我在使用URLLoader时突然出现流错误?

时间:2016-08-19 22:41:06

标签: android actionscript-3 air

我已经在Android应用程序项目上工作了一年,我在一开始就实现了这个功能。该应用程序是一个费用/储蓄管理应用程序,它具有一个功能,如果用户当前在不同的国家/地区,则可以在后台转换货币。我正在使用geonames API来查找国家/地区的名称。以下是相关代码:

countryURLRequest = new URLRequest('http://api.geonames.org/findNearby?lat='+latitudes+'&lng='+longitudes+'&username=fatninja');
countryURLLoader = new URLLoader();

countryURLLoader.load(countryURLRequest);

今天,当我从模拟器发送lat和lng值时,我在这一行得到了所说的流错误:

countryURLLoader = new URLLoader();

奇怪的是,这个功能从一开始就一直很好用。我认为它可能是代码中的一个错误所以我从备份运行项目(从3个月前开始),它给出了同样的错误。我知道它是在3个月前工作的事实。可能是什么问题?

1 个答案:

答案 0 :(得分:1)

此错误表示您在获取数据时遇到问题。你的代码没有错。可能是您的网络配置已更改,这阻止了对Web服务的访问。

您的以前正在使用的代码遇到同样的问题,这进一步支持了这一点。

你应该做两件事。

  1. 添加IO错误事件处理程序和HTTP状态事件处理程序。

    var loader:URLLoader = new URLLoader; loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,loader_ioErrorHandler); //请注意,侦听器已添加到contentLoaderInfo对象中 loader.addEventListener(HTTPStatusEvent.HTTP_STATUS,loader_httpStatusHandler); loader.load(新的URLRequest(“www.example.com”));

    function loader_ioErrorHandler(e:IOErrorEvent):void {     //处理错误     迹(e.text); }

    function loader_httpStatusHandler(e:HTTPStatusEvent.HTTP_STATUS):void {     迹(e.status); }

  2. 添加标签以通知用户IO错误处理程序中的错误,并可能是一个重试请求的按钮。

    1. 使用HTTPService实例的requestTimeout属性增加超时的持续时间。