URLSession

URLSession

iOS 앱의 네트워크 통신을 위해 URLSession 을 사용한다. URLSession은 네트워크 요청과 응답을 처리하고 데이터를 전송하고 수신할 수 있도록 한다.

URLSession을 사용한 네트워크 요청

  • URL 생성 : 요청할 리소스의 URL 생성
  • URLRequest 생성 : URL을 기반으로 Request 객체를 생성하고, 필요에 따라 HTTP메서드, 헤더, 본문 등 추가한다.
  • URLSession 객체 생성 : URLSession 객체를 생성하고 필요에 따라 URLSessionConfiguration를 구성한다
  • URLSessionTask 생성 : URLSession 객체를 사용하여 SessionTask를 생성하고, 요청을 실행한다.
import UIKit

let movieURL = "<http://kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchDailyBoxOfficeList.json?&targetDt=20210201&key=4dac74bd8e6513b08090c999c55a44ad>"

// 1. URL 구조체 만들기
let url = URL(string: movieURL)!

// 2. URLSession 만들기 (네트워킹을 하는 객체 - 브라우저 같은 역할)

// 3. 세션에 (일시정지 상태로)작업 부여
URLSession.shared.dataTask(with: url) { (data, response, error) in
    // 에러가 발생하는지 먼저 확인
    if error != nil {
        print(error!)
        return
    }
    
    guard let safeData = data else {
        return
    }
    
    // 데이터를 그냥 한번 출력해보기
    print(String(decoding: safeData, as: UTF8.self))
    
//    dump(parseJSON1(safeData)!)
}.resume()

 

이렇게 설정하면 아래 사진과 같이 JSON 으로 데이터를 받을 수 있다 

 

그 이후 이걸 우리가 사용할 수 있는 class 혹은 struct 로 변환하여 사용 하면 된다!