[swift] Swift로 비동기 HTTP 요청 보내기

HTTP 요청을 보내는 것은 앱에서 네트워킹 작업을 수행하는 중요한 부분입니다. Swift에서 비동기 HTTP 요청을 보내는 방법을 배우고자 한다면, URLSession을 사용하는 것이 좋습니다. URLSession은 URL과 관련된 모든 작업을 처리하기 위한 내장 라이브러리입니다.

URLSession을 사용하여 비동기 HTTP 요청 보내기

다음은 Swift에서 URLSession을 사용하여 비동기 HTTP 요청을 보내는 예제 코드입니다:

import Foundation

// URLRequest 인스턴스 생성
guard let url = URL(string: "https://api.example.com/users") else {
    print("Invalid URL")
    return
}
var request = URLRequest(url: url)
request.httpMethod = "GET"

// URLSession 인스턴스 생성
let session = URLSession.shared

// 비동기 데이터 작업을 수행하는 URLSessionDataTask 생성
let dataTask = session.dataTask(with: request) { (data, response, error) in
    // 요청이 성공적으로 완료되었는지 확인
    if let error = error {
        print("Error: \(error.localizedDescription)")
        return
    }
    
    // HTTP 응답 코드 확인
    if let httpResponse = response as? HTTPURLResponse {
        if httpResponse.statusCode == 200 {
            // 데이터 처리
            if let data = data {
                // 데이터 파싱, 분석 또는 처리
                // 예시: JSON 데이터를 파싱하여 출력
                do {
                    let json = try JSONSerialization.jsonObject(with: data, options: [])
                    print(json)
                } catch {
                    print("Error parsing JSON: \(error.localizedDescription)")
                }
            }
        } else {
            print("Error response: \(httpResponse.statusCode)")
        }
    }
}

// 비동기 요청 시작
dataTask.resume()

위 코드에서 우리는 URLSession.shared를 사용하여 URLSession 인스턴스를 생성하고, 그 인스턴스를 사용하여 비동기 데이터 작업을 수행하는 URLSessionDataTask를 생성합니다. dataTask 객체의 completionHandler 클로저는 작업이 완료된 후 호출됩니다. 이 클로저 안에 요청의 결과를 처리하는 코드를 작성할 수 있습니다.

요약

Swift에서 비동기 HTTP 요청을 보내려면 URLSession을 사용해야 합니다. URLSession은 HTTP 네트워킹 작업을 수행하기 위한 내장 라이브러리로, URLSessionDataTask를 사용하여 비동기 요청을 시작하고, completionHandler를 사용하여 요청의 결과를 처리합니다.

위의 예제 코드를 참고하여 Swift에서 비동기 HTTP 요청을 보내는 방법을 익힐 수 있습니다. 추가적인 기능을 사용하려면 URLSessionDelegate를 구현하여 커스텀 동작을 추가할 수도 있습니다.

참고 자료