[swift] Swift로 HTTP 요청에 Basic 인증 추가하기

개요

HTTP 요청을 보낼 때, 때로는 서버에서 인증을 요구하는 경우가 있습니다. Basic 인증은 가장 간단한 인증 방법 중 하나이며, 사용자 이름과 비밀번호를 Base64로 인코딩하여 요청 헤더에 포함시킵니다. 이번 블로그에서는 Swift로 HTTP 요청에 Basic 인증을 추가하는 방법에 대해 알아보겠습니다.

구현하기

Swift에서 HTTP 요청에 Basic 인증을 추가하려면 URLRequest의 allHTTPHeaderFields 속성을 설정해주어야 합니다. 아래의 예제 코드를 참고해주세요:

import Foundation

let url = URL(string: "http://example.com/api")!
let username = "your_username"
let password = "your_password"

if let data = "\(username):\(password)".data(using: .utf8)?.base64EncodedString() {
    var request = URLRequest(url: url)
    request.addValue("Basic \(data)", forHTTPHeaderField: "Authorization")
    request.httpMethod = "GET"

    let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
        if let error = error {
            print("Error: \(error.localizedDescription)")
        } else if let data = data {
            let responseString = String(data: data, encoding: .utf8)
            print("Response: \(responseString ?? "")")
        }
    }
    task.resume()
}

위의 코드에서는 URLSession.shared.dataTask(with:completionHandler:) 메서드를 이용하여 GET 요청을 보냅니다. 사용자 이름과 비밀번호를 Base64로 인코딩하고, Authorization 헤더에 추가하여 인증을 포함시켰습니다.

요약

Swift에서 HTTP 요청에 Basic 인증을 추가하는 방법에 대해 알아보았습니다. URLRequestallHTTPHeaderFields 속성을 사용하여 Authorization 헤더를 설정하고, 사용자 이름과 비밀번호를 Base64로 인코딩하여 전송하면 됩니다. 이를 통해 서버의 인증 요구에 응답할 수 있습니다.

참고 자료