我已经在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个月前工作的事实。可能是什么问题?
答案 0 :(得分:1)
此错误表示您在获取数据时遇到问题。你的代码没有错。可能是您的网络配置已更改,这阻止了对Web服务的访问。
您的以前正在使用的代码遇到同样的问题,这进一步支持了这一点。
你应该做两件事。
添加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); }
添加标签以通知用户IO错误处理程序中的错误,并可能是一个重试请求的按钮。