[swift] Swift로 HTTP 요청에 사용자 정의 헤더 추가하기

웹 개발에서 HTTP 요청을 보낼 때, 종종 사용자 정의 헤더를 요청에 추가해야 할 때가 있습니다. 이를 통해 서버 쪽에서 요청을 처리하는 데 필요한 추가 정보를 전달할 수 있습니다. Swift 언어를 사용하여 HTTP 요청에 사용자 정의 헤더를 추가하는 방법을 살펴보겠습니다.

URLSession을 사용한 HTTP 요청

Swift에서 HTTP 요청을 보내기 위해 URLSession을 사용할 수 있습니다. URLSession은 URL에 대한 데이터 전송 작업을 담당하는 객체입니다. HTTP 메서드(GET, POST, PUT, DELETE 등)를 설정하고, URL과 함께 요청을 보낼 수 있습니다.

import Foundation

let url = URL(string: "https://example.com/api")
var request = URLRequest(url: url!)
request.httpMethod = "GET"

위의 예시에서는 “https://example.com/api”로 GET 메서드를 사용해 HTTP 요청 객체를 생성하고 있습니다.

사용자 정의 헤더 추가하기

사용자 정의 헤더를 추가하기 위해서는 URLRequestaddValue(_:forHTTPHeaderField:) 메서드를 사용합니다. 이 메서드를 사용하여 원하는 헤더를 요청에 추가할 수 있습니다.

request.addValue("Bearer your-access-token", forHTTPHeaderField: "Authorization")

위의 예시에서는 “Authorization” 헤더를 추가하고 있습니다. 이 헤더는 “Bearer your-access-token” 값으로 설정됩니다. 이렇게 함으로써 서버에서는 요청에 대한 인증을 확인할 수 있습니다.

전체 코드 예시

아래는 모든 단계를 포함한 전체 코드 예시입니다.

import Foundation

let url = URL(string: "https://example.com/api")
var request = URLRequest(url: url!)
request.httpMethod = "GET"
request.addValue("Bearer your-access-token", forHTTPHeaderField: "Authorization")

let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
    // 요청 결과 처리
}
task.resume()

위의 예시는 URLSession.shared.dataTask(with:completionHandler:)를 사용하여 요청을 보내고, 받은 데이터와 응답을 처리하는 부분은 비동기로 처리됩니다.

결론

Swift로 HTTP 요청을 보낼 때, 사용자 정의 헤더를 추가하는 방법을 살펴보았습니다. URLRequestaddValue(_:forHTTPHeaderField:) 메서드를 사용하여 원하는 헤더를 요청에 추가할 수 있습니다. 이를 통해 서버에 필요한 추가 정보를 전달하고, 요청을 보낼 때 인증 등의 과정을 수행할 수 있습니다.