繁体   English   中英

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

[英]Why am I suddenly getting stream error while using URLLoader?

我从事Android应用程序项目已经一年了,一开始就实现了此功能。 该应用程序是费用/储蓄管理应用程序,它具有一项功能,如果用户当前在其他国家/地区,则可以在后台转换货币。 我正在使用地理名称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个月前开始),它给出了相同的错误。 我知道一个事实,那就是三个月前。 可能是什么问题呢?

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

事实是,您以前使用的代码也面临着同样的问题,这进一步证明了这一点。

您应该做两件事。

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

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

    函数loader_ioErrorHandler(e:IOErrorEvent):void {//处理错误跟踪(e.text); }

    函数loader_httpStatusHandler(e:HTTPStatusEvent.HTTP_STATUS):void {trace(e.status); }

添加标签以将IO错误处理程序中的错误通知用户,还可以添加一个按钮以重试该请求。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM