[IOS] Alamofire timeoutIntervalForResource 예제

timeoutIntervalForResource는 Alamofire의 URLRequest의 속성 중 하나로, 네트워크 리소스 요청에 대한 타임아웃 시간을 설정하는 데 사용됩니다.

timeoutIntervalForResource 속성은 서버로부터 요청 리소스(데이터, 이미지 등)를 받는 데까지 걸리는 최대 시간을 초 단위로 지정합니다. 이 속성을 사용하여 응답 데이터가 서버로부터 받아지는 데 걸리는 최대 시간을 제어할 수 있습니다.

아래는 Alamofire를 사용하여 timeoutIntervalForResource를 설정한 GET 요청의 예제입니다:

import UIKit
import Alamofire

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        let url = "https://api.example.com/data"
        let timeoutIntervalForResource: TimeInterval = 30 // 30초로 리소스 타임아웃 설정

        // Alamofire를 사용하여 GET 요청을 보냅니다. 리소스 타임아웃 설정을 추가합니다.
        Alamofire.request(url, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: nil)
            .validate() // 요청이 성공적으로 완료되었는지 확인합니다.
            .responseJSON { response in
                switch response.result {
                case .success(let value):
                    print("응답 데이터: \(value)")
                case .failure(let error):
                    print("에러: \(error)")
                }
            }
            .timeoutIntervalForResource(timeoutIntervalForResource) // 리소스 타임아웃 시간 설정
    }
}

위의 예제에서는 timeoutIntervalForResource 메서드를 사용하여 리소스 타임아웃 시간을 설정했습니다. 이 경우, 30초의 타임아웃 시간을 설정하였습니다. 만약 서버가 30초 이내에 요청 리소스를 전달하지 않으면 요청은 실패로 간주됩니다.

이와 같이 리소스 타임아웃을 설정하여 응답 데이터를 받아오는 데 소요되는 시간을 제어할 수 있습니다. 리소스 타임아웃과 요청 타임아웃(timeoutIntervalForRequest)을 적절히 조절하여 원하는 네트워크 요청 제한을 구현할 수 있습니다.