[swift] Swift로 HTTP 요청에 파라미터 추가하기

Swift를 사용하여 HTTP 요청을 보낼 때, 때로는 파라미터를 함께 전송해야 할 때가 있습니다. 이 글에서는 Swift로 HTTP 요청에 파라미터를 추가하는 방법에 대해 알아보겠습니다.

URLSession을 사용한 GET 요청

먼저, URLSession을 사용하여 GET 요청을 보내는 방법을 살펴보겠습니다. GET 요청에 파라미터를 추가하려면 URL 쿼리 문자열을 생성하여 URL과 함께 보내야 합니다. 아래의 예제 코드는 “https://example.com/api” URL에 “param1”이라는 이름으로 “value1” 값을 가진 파라미터를 추가하는 예제입니다.

// 파라미터 생성
let param1 = "value1"
let urlString = "https://example.com/api?param1=\(param1)"

// URL 생성
if let url = URL(string: urlString) {
    // GET 요청 생성
    let request = URLRequest(url: url)
    
    // URLSession을 사용하여 요청 전송
    let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
        if let error = error {
            print("Error: \(error.localizedDescription)")
            return
        }
        
        // 응답 처리
        if let data = data {
            // 데이터를 사용하여 필요한 작업 수행
        }
    }
    
    task.resume()
}

URLSession을 사용한 POST 요청

POST 요청에 파라미터를 추가하는 방법은 GET 요청과 다릅니다. POST 요청의 파라미터는 HTTP 바디에 추가됩니다. 아래의 예제 코드는 “https://example.com/api” URL에 “param1”이라는 이름으로 “value1” 값을 가진 파라미터를 추가하는 POST 요청의 예제입니다.

// 파라미터 생성
let param1 = "value1"
let params = ["param1": param1]
    
// URL 생성
if let url = URL(string: "https://example.com/api") {
    // POST 요청 생성
    var request = URLRequest(url: url)
    request.httpMethod = "POST"
    
    // 파라미터를 JSON 데이터로 변환
    if let jsonData = try? JSONSerialization.data(withJSONObject: params, options: []) {
        // HTTP 바디에 데이터 설정
        request.httpBody = jsonData
        
        // URLSession을 사용하여 요청 전송
        let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
            if let error = error {
                print("Error: \(error.localizedDescription)")
                return
            }
            
            // 응답 처리
            if let data = data {
                // 데이터를 사용하여 필요한 작업 수행
            }
        }
        
        task.resume()
    }
}

결론

Swift를 사용하여 HTTP 요청에 파라미터를 추가하는 방법에 대해 알아보았습니다. GET 요청의 경우 URL 쿼리 문자열을 생성하고, POST 요청의 경우 HTTP 바디에 파라미터를 추가해야 합니다. 이를 통해 원하는 요청을 보내고 응답을 처리할 수 있습니다.

더 자세한 내용은 Apple의 URLSession 문서를 참조해주세요.