[swift] Swift Moya에서 요청 타임아웃 설정하기
Moya는 Swift에서 네트워크 요청을 쉽게 처리하기 위한 라이브러리입니다. 이번에는 Moya를 사용하여 네트워크 요청을 보낼 때 요청의 타임아웃을 설정하는 방법에 대해 알아보겠습니다.
요청 타임아웃 설정하기
Moya에서 네트워크 요청의 타임아웃을 설정하기 위해서는 Endpoint
를 수정해야 합니다. 다음은 타임아웃을 10초로 설정하는 예제입니다.
import Moya
let provider = MoyaProvider<YourAPI>()
var endpointClosure = { (target: YourAPI) -> Endpoint in
let defaultEndpoint = MoyaProvider.defaultEndpointMapping(for: target)
return defaultEndpoint.adding(newHTTPHeaderFields: ["Content-Type": "application/json"])
.replacing(task: defaultEndpoint.task, timeoutInterval: 10)
}
let modifiedProvider = MoyaProvider<YourAPI>(endpointClosure: endpointClosure)
modifiedProvider.request(.yourEndpoint) { result in
// handle response
}
위의 예제에서는 endpointClosure
클로저를 사용하여 Endpoint
를 수정하고, 타임아웃을 10초로 설정합니다. 그리고 수정된 endpointClosure
로 MoyaProvider
를 초기화합니다. 이렇게 하면 해당 MoyaProvider
인스턴스에서는 모든 요청에 대해 타임아웃이 10초로 설정됩니다.