簡體   English   中英

Alamofire請求在連接速度慢時使我的應用程序崩潰

[英]Alamofire request crashes my app on slow connection

我迷上了ios APP的問題。 我正在使用Alamofire向REST API發出http請求。

一切正常,直到我的應用程序在2G或慢速連接上運行。 它會使應用程序崩潰,而調試器上沒有任何錯誤消息。

這是我的API調用示例,我認為我做得正確。

您知道我該怎么辦才能處理慢速連接嗎?

謝謝您的回復

AF.request(url_to_call, method: .patch, headers: headers).responseJSON{response in
    let error_code = response.response?.allHeaderFields["Nx-Error-Code"] ?? "200"

    if (error_code as! String != "200"){
        parseErrorCode(code: error_code as! String)
    } else {
        do{
            let json = try JSON(data: response.data!)
            print(json)
        } catch {
            print(error)
        }
    }
}

Alamofire不會使您的應用程序崩潰,而是通過強制將response.data值不存在(例如超時)解開來使您的應用程序崩潰。 在最簡單的級別上,您需要切換response.result值,然后處理成功和失敗的情況。

AF.request(url_to_call, method: .patch, headers: headers).responseJSON { response in
    switch response.result {
    case let .success(value): // Handle success.
    case let .failure(error): // Handle failure.
    }
}

對於超時或其他系統錯誤,您將在.failure情況下看到錯誤。 對於諸如響應代碼驗證之類的其他事情,您可能需要在responseJSON之前添加validate()調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM