[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
)을 적절히 조절하여 원하는 네트워크 요청 제한을 구현할 수 있습니다.