개발 - iOS SwiftUI

iOS SwiftUI HTTP GET 요청 후 JSON 응답 파싱 예제

개미v 2023. 10. 16. 19:25

SwiftUI에서 HTTP GET 요청후 JSON 응답 처리하는 기본 예제 입니다.

가독성 좋게 옵셔널은 Unwrapp 하였습니다.


하면 할 수록 Swift 문법이 참 별로네요 ㅋㅋ

import SwiftUI
import WebKit

struct IntroView: View {

    var body: some View {
        VStack {
        }
        .onAppear {
            startMain()
        }
    }
    
    func startMain() {
        // 버전 확인
        let session = URLSession.shared
        
        // HTTP 요청
        let url = URL(string: Define.serverUrl + "/system/selectVersion.ajax")!
        var request = URLRequest(url: url)
        request.httpMethod = "GET"
        
        // 요청 결과 처리
        let task = session.dataTask(with: request) {data, response, error in
            
            // HTTP 응답코드가 400번대, 500번대의 경우 리턴
            let httpResponse = response as! HTTPURLResponse
            if httpResponse.statusCode >= 400 && httpResponse.statusCode <= 599 {
                print(httpResponse.statusCode)
            }
            
            // HTTP 결과
            let jsonDecoder = JSONDecoder()
            let httpResponseJson = try! jsonDecoder.decode(HttpResponseJson.self, from: data!)
            
            print(httpResponseJson.code)
            print(httpResponseJson.data)
        }
        task.resume()
    }
}

// HTTP 응답 JSON에 맵핑되는 구조체
struct HttpResponseJson: Decodable {
    let code: String
    let data: String
}