[swift] Swift로 HTTP 요청에 JSON 데이터 전송하기

Swift를 사용하여 서버에 HTTP POST 요청을 보내고 JSON 데이터를 전송하는 방법에 대해 알아보겠습니다.

필요한 라이브러리 가져오기

HTTP 요청을 보내기 위해 URLSession을 사용합니다. 따라서 프로젝트에 다음과 같이 import 구문을 추가해주세요.

import Foundation

JSON 데이터 준비하기

먼저 전송할 JSON 데이터를 준비해야 합니다. 예를 들어 다음과 같은 JSON 형식의 데이터를 전송하려면 다음과 같이 Swift의 Dictionary를 사용할 수 있습니다.

let data: [String: Any] = [
    "name": "John Doe",
    "age": 30,
    "email": "johndoe@gmail.com"
]

HTTP 요청 보내기

URLSession을 사용하여 HTTP 요청을 보냅니다. URL, HTTP 메소드 및 HTTP 헤더를 설정한 후 요청 본문에 JSON 데이터를 추가합니다.

if let url = URL(string: "http://example.com/api") {
    var request = URLRequest(url: url)
    request.httpMethod = "POST"
    request.setValue("application/json", forHTTPHeaderField: "Content-Type")
    
    do {
        let jsonData = try JSONSerialization.data(withJSONObject: data, options: [])
        request.httpBody = jsonData
        
        let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
            if let error = error {
                print("Error: \(error.localizedDescription)")
            } else if let data = data {
                // 서버 응답 처리
                // ...
            }
        }
        
        task.resume()
    } catch {
        print("Error: \(error.localizedDescription)")
    }
}

위의 코드에서는 URLSession의 dataTask 메소드를 사용하여 비동기적으로 HTTP 요청을 보냅니다. 성공적인 요청의 경우 서버로부터 받은 데이터를 처리하는 부분을 구현해야 합니다.

이제 Swift를 사용하여 HTTP POST 요청에 JSON 데이터를 전송하는 방법에 대해 알아봤습니다. 이를 활용하여 서버와 통신하여 원하는 작업을 수행할 수 있습니다.

참고 자료