[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초로 설정합니다. 그리고 수정된 endpointClosureMoyaProvider를 초기화합니다. 이렇게 하면 해당 MoyaProvider 인스턴스에서는 모든 요청에 대해 타임아웃이 10초로 설정됩니다.

참고 자료