[ swift - URLSession ]

Yr Yr·2024년 1월 12일

TIL

목록 보기
30/39

* URLSession은 네트워크 데이터를 가져오거나 보내는 작업을 수행한다.

[ GET 예시 ]

// URLSession 인스턴스 생성
let session = URLSession.shared

// URL 생성
if let url = URL(string: "https://api.example.com/data") {
	// URLSessionDataTask를 사용해 비동기적으로 데이터 요청
    let task = session.dataTask(with: url) { (data,response,error) in
    	if let error = error {
        	print("Error: \(error)")
        } else if let data = data {
        	// 데이터 받아온 후 처리하는 로직
            print("Received data: \(data)")
        }
    }
    // 네트워크 요청 시작
    task.resume()
}

[ URLRequest를 사용한 POST 예시 ]

// URLSession 인스턴스 생성
let session = URLSession.shared

// URL 생성
if let url = URL(string: "https://api.example.com/data") {

	// URLRequest 생성
    var request = URLRequest(url: url)
    
    // HTTP 메서드 설정
    request.httpMethod = "POST"
    
    // HTTP 헤더 설정
    request.addValue("application/json", forHTTPHeaderField: "Content-Type")
    
    // HTTP Body에 보낼 데이터 설정(JSON 형식)
    let parameters: [String: String] = [
    	"value1": "example value",
        "value2": "example value"
    ]
    
    // HTTP Body에 JSON 데이터 설정
    request.httpBody = try? JSONEncoder().encode(parameters)
    
    // URLSessionDataTask를 사용해 비동기적으로 데이터 요청
    let task = session.dataTask(with: url) { (data, response, error) in
        if let error = error {
            print("Error: \(error)")
        } else if let data = data {
            // 데이터 받아온 후 처리하는 로직
            print("Received data: \(data)")
        }
    }
    // 네트워크 요청 시작
    task.resume()
}

0개의 댓글