为什么我在使用 URLLoader 时突然出现流错误?
Why am I suddenly getting stream error while using URLLoader?
我从事 android 应用程序项目一年了,我在一开始就实现了这个功能。该应用程序是一个 expense/savings 管理应用程序,如果用户当前在不同的国家/地区,它具有在后台转换货币的功能。我正在使用 geonames API 来查找国家/地区的名称。这是相关代码:
countryURLRequest = new URLRequest('http://api.geonames.org/findNearby?lat='+latitudes+'&lng='+longitudes+'&username=fatninja');
countryURLLoader = new URLLoader();
countryURLLoader.load(countryURLRequest);
今天,当我从模拟器发送纬度和经度值时,我在这一行收到了上述流错误:
countryURLLoader = new URLLoader();
奇怪的是这个功能从一开始就运行良好。我认为这可能是代码中的一个错误,所以我 运行 从备份项目(从 3 个月前开始),它给出了同样的错误。我知道它在 3 个月前就开始工作了。可能是什么问题?
此错误表明您 运行 在获取数据时遇到了问题。您的代码没有问题。可能是您的网络配置已更改,导致无法访问 Web 服务。
您在使用以前工作的代码时遇到了同样的问题,这一事实进一步支持了这一点。
有两件事你应该做。
添加 IO 错误事件处理程序和 HTTP 状态事件处理程序。
var loader:URLLoader = 新的 URLLoader;
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loader_ioErrorHandler); // 注意监听器被添加到 contentLoaderInfo 对象
loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, loader_httpStatusHandler);
loader.load(新的 URLRequest("www.example.com"));
函数loader_ioErrorHandler(e:IOErrorEvent):void
{
// 处理错误
跟踪(e.text);
}
函数loader_httpStatusHandler(e:HTTPStatusEvent.HTTP_STATUS):void
{
跟踪(e.status);
}
添加标签以通知用户有关 IO 错误处理程序中的错误,以及可能重试请求的按钮。
- 使用 HTTPService 实例的 requestTimeout 属性 增加超时持续时间。
我从事 android 应用程序项目一年了,我在一开始就实现了这个功能。该应用程序是一个 expense/savings 管理应用程序,如果用户当前在不同的国家/地区,它具有在后台转换货币的功能。我正在使用 geonames API 来查找国家/地区的名称。这是相关代码:
countryURLRequest = new URLRequest('http://api.geonames.org/findNearby?lat='+latitudes+'&lng='+longitudes+'&username=fatninja');
countryURLLoader = new URLLoader();
countryURLLoader.load(countryURLRequest);
今天,当我从模拟器发送纬度和经度值时,我在这一行收到了上述流错误:
countryURLLoader = new URLLoader();
奇怪的是这个功能从一开始就运行良好。我认为这可能是代码中的一个错误,所以我 运行 从备份项目(从 3 个月前开始),它给出了同样的错误。我知道它在 3 个月前就开始工作了。可能是什么问题?
此错误表明您 运行 在获取数据时遇到了问题。您的代码没有问题。可能是您的网络配置已更改,导致无法访问 Web 服务。
您在使用以前工作的代码时遇到了同样的问题,这一事实进一步支持了这一点。
有两件事你应该做。
添加 IO 错误事件处理程序和 HTTP 状态事件处理程序。
var loader:URLLoader = 新的 URLLoader; loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loader_ioErrorHandler); // 注意监听器被添加到 contentLoaderInfo 对象 loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, loader_httpStatusHandler); loader.load(新的 URLRequest("www.example.com"));
函数loader_ioErrorHandler(e:IOErrorEvent):void { // 处理错误 跟踪(e.text); }
函数loader_httpStatusHandler(e:HTTPStatusEvent.HTTP_STATUS):void { 跟踪(e.status); }
添加标签以通知用户有关 IO 错误处理程序中的错误,以及可能重试请求的按钮。
- 使用 HTTPService 实例的 requestTimeout 属性 增加超时持续时间。