[swift] Swift로 HTTP 요청에 헤더 인코딩 설정하기

Swift를 사용하여 HTTP 요청을 보낼 때, 헤더 인코딩을 설정하는 방법에 대해 알아보겠습니다.

URLSession과 URLRequest

Swift에서 HTTP 요청을 보내려면 URLSessionURLRequest를 사용해야 합니다. URLRequest는 요청을 만들기 위해 필요한 정보를 담고 있는 객체이며, URLSession은 요청을 보내고 응답을 처리하는 기능을 제공합니다.

헤더 인코딩 옵션 설정하기

URLRequest를 사용하여 HTTP 요청을 만들 때, URLRequestallHTTPHeaderFields 속성을 사용하여 헤더의 인코딩을 설정할 수 있습니다. allHTTPHeaderFields는 Dictionary 형태로 헤더 필드와 값을 설정하는데 사용됩니다.

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

// 헤더 인코딩 설정
request.allHTTPHeaderFields = ["Content-Type": "application/json; charset=utf-8"]

// URLSession을 사용해 요청 보내기
let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
    if let error = error {
        print("Error: \(error)")
        return
    }
    
    // 응답 처리
    if let data = data {
        let responseString = String(data: data, encoding: .utf8)
        print("Response: \(responseString ?? "")")
    }
}
task.resume()

위의 예제에서는 URLRequestallHTTPHeaderFields"Content-Type" 헤더 필드를 설정하여 인코딩 방식을 명시적으로 지정하였습니다. 이 예제에서는 JSON 형식으로 데이터를 주고받기 때문에 "application/json""charset=utf-8"로 인코딩을 설정하였습니다.

참고 자료

이것은 Swift에서 HTTP 요청에 헤더 인코딩을 설정하는 방법에 대한 기본적인 예제입니다. 요청을 보내는 상황에 맞게 인코딩 옵션을 설정하여 원하는 결과를 얻을 수 있습니다.