[swift] Swift로 HTTP 요청 헤더 설정하기

Swift를 사용하여 HTTP 요청을 수행할 때, 종종 헤더를 설정해야 할 경우가 있습니다. 헤더는 클라이언트와 서버 간의 통신을 위해 필요한 정보를 담고 있습니다. 따라서 올바른 헤더 설정은 원활한 통신을 위해 매우 중요합니다.

HTTP 요청 헤더를 설정하는 방법에 대해 알아보겠습니다.

URLSession을 이용한 HTTP 요청

Swift의 URLSession은 HTTP 요청을 처리하는 데 사용되는 기본 클래스입니다. 아래의 예제 코드와 함께 헤더를 설정하는 방법을 확인해보세요.

import Foundation

let url = URL(string: "http://example.com/api")
var request = URLRequest(url: url!)
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.setValue("Token <YOUR_TOKEN>", forHTTPHeaderField: "Authorization")

let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
    // 요청의 응답을 처리하는 코드
}

task.resume()

위의 코드에서 setValue(_:forHTTPHeaderField:) 메서드를 사용하여 헤더 값을 설정합니다. Content-Type 헤더는 요청 본문의 타입을 지정하고, Authorization 헤더에는 인증 토큰을 설정할 수 있습니다. 필요한 헤더를 추가로 설정하려면 이와 같은 방식으로 계속해서 setValue(_:forHTTPHeaderField:)를 호출하면 됩니다.

Alamofire를 이용한 HTTP 요청

Swift에서 널리 사용되는 Alamofire는 URLSession을 감싼 간편한 HTTP 클라이언트 라이브러리입니다. Alamofire를 사용하면 좀 더 간편하고 가독성이 좋은 코드로 헤더를 설정할 수 있습니다. 아래의 예제 코드를 참고하세요.

import Alamofire

let headers: HTTPHeaders = [
    "Content-Type": "application/json",
    "Authorization": "Token YOUR_TOKEN"
]

AF.request("http://example.com/api", headers: headers).responseJSON { response in
    // 요청의 응답을 처리하는 코드
}

위의 코드에서 headers 변수에 헤더 값을 딕셔너리 형태로 설정한 후, AF.request(_:headers:) 메서드를 사용하여 요청을 보냅니다. 필요한 헤더를 추가로 설정하려면 headers 변수에 계속해서 키-값 쌍을 추가하면 됩니다.

참고 자료