[swift] Swift로 HTTP 요청에서 응답 본문 가져오기

Swift를 사용하여 HTTP 요청을 보내고, 응답에서 본문을 가져오는 방법에 대해 알아보겠습니다.

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

우선, URLSession을 사용하여 HTTP 요청을 보내는 방법을 알아보겠습니다. 아래의 예제 코드를 참고해주세요.

import Foundation

// 요청을 보낼 URL
let url = URL(string: "https://example.com/api")

// URLRequest 생성
var request = URLRequest(url: url)
request.httpMethod = "GET"

// URLSession 생성
let session = URLSession.shared

// HTTP 요청 보내기
let task = session.dataTask(with: request) { (data, response, error) in
    if let error = error {
        print("Error: \(error)")
        return
    }
    
    // 응답 본문 확인하기
    if let data = data {
        let responseBody = String(data: data, encoding: .utf8)
        print("Response Body: \(responseBody ?? "")")
    }
}

task.resume()

위의 코드에서는 URLSession을 사용하여 GET 방식의 HTTP 요청을 보내고, 응답에서 본문을 가져오고 있습니다.

Alamofire를 사용하여 HTTP 요청 보내기

또 다른 방법으로는 Alamofire라는 라이브러리를 사용하여 HTTP 요청을 보내는 방법이 있습니다. Alamofire는 Swift로 작성된 간편한 HTTP 통신 라이브러리입니다. 아래의 예제 코드를 참고해주세요.

import Alamofire

// 요청을 보낼 URL
let url = "https://example.com/api"

// Alamofire를 사용하여 GET 방식으로 HTTP 요청 보내기
AF.request(url).responseString { response in
    switch response.result {
    case .success(let responseBody):
        print("Response Body: \(responseBody)")
    case .failure(let error):
        print("Error: \(error)")
    }
}

Alamofire를 사용하면 URLSession보다 더 간결하고 편리한 방식으로 HTTP 요청을 보낼 수 있습니다.

참고 문서