Search
Duplicate

HTTP request

태그

HTTP Request

Network 통신 클래스 만들기

접기
import SwiftUI class Network: ObservableObject { // ObservableObject 프로토콜 채택 >> 뷰 리프레쉬 @Published var users: [User] = [] //데이터 @Published 로 선언 >> 이 데이터 변경시 뷰 리프레쉬 func getUsers() { // 데이터 가져오는 메서드 정의 guard let url = URL(string: "https://jsonplaceholder.typicode.com/users") else { fatalError("Missing URL") } let urlRequest = URLRequest(url: url) let dataTask = URLSession.shared.dataTask(with: urlRequest) { (data, response, error) in if let error = error { print("Request error: ", error) return } guard let response = response as? HTTPURLResponse else { return } if response.statusCode == 200 { guard let data = data else { return } DispatchQueue.main.async { do { let decodedUsers = try JSONDecoder().decode([User].self, from: data) self.users = decodedUsers } catch let error { print("Error decoding: ", error) } } } } dataTask.resume() } }
Swift
복사