簡體   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