Skip to content

Instantly share code, notes, and snippets.

@TuenTuenna
Created November 11, 2021 05:17
Show Gist options
  • Save TuenTuenna/4f4b3a879dd57c53669d72c310564d6f to your computer and use it in GitHub Desktop.
Save TuenTuenna/4f4b3a879dd57c53669d72c310564d6f to your computer and use it in GitHub Desktop.
Alamfire request connect timeout
import Foundation
import Alamofire

final class ApiLogger: EventMonitor {
    let queue = DispatchQueue(label: "ApiLogger")
    
    func requestDidResume(_ request: Request) {
        print("ApiLogger - requsetDidResume() called")
        debugPrint(request)
    }
    
    func request<Value>(_ request: DataRequest, didParseResponse response: DataResponse<Value, AFError>) {
        print("ApiLogger - requset<Value>() called")
        if let error = response.error {
            switch error {
            case .sessionTaskFailed(let error):
                print("에러 : error: \(error)")
                if error._code == NSURLErrorTimedOut {
                    print("[API 타임아웃 테스트] Time out occurs! !!!!!")
                    // 타임아웃 에러 팝업을 띄운다.
                    self.showErrorPopup()
                }
            default:
                print("default")
            }
        }
        debugPrint(response)
    }
}

사용 예시

let monitors = [ApiLogger()] as [EventMonitor]
Session(eventMonitors: monitors)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment