iOS/Swift

[iOS] URLSession으로 get method 사용

유훈 | Yuhun 2022. 2. 22. 02:49
반응형

서버와 데이터를 주고받기 위해서 http 통신을 사용합니다. 보통 가장 많이 사용되는 get을 사용하는 방법을 알아보도록 하겠습니다.

// 요청할 url 작성
let url = URL(string: "요청할 url")

// request 만들기 + method 정해주기
var request = URLRequest(url: url)
request.httpMethod = "GET"

// dataTask 만들기

let dataTask = URLSession.shared.dataTask(with: url) {[weak self]  data, response, error in
    guard let self = self else {return} // 강한 순환 참조 방지

    guard error == nil else {return}
    guard let response = response as? HTTPURLResponse else {return}
    guard let data = data else {return}

    // 경우에 따라 다름 - json decoding
    guard let beers = try? JSONDecoder().decode(원하는 데이터 유형 구조체.self, from: data) else {return}

    // 상태 확인
    switch response.statusCode {
    case 200...299: // 200번대 코드일때
        // 성공시 코드 작성                
        // 추가로 클라이언트 에러는 400대 서버 에러는 500대
    default:
        // 코드
    }
}

// dataTask를 만들면 실행을 해야 한다.
dataTask.resume()

이렇게 URLSession을 이용하면 api를 이용해 데이터를 받아올 수가 있습니다.

(추가로 이를 간단하게 해주는 alarmofire라는 오픈소스 라이브러리도 있습니다.)

 

아직 백엔드와 협업을 할 일이 없어 post나 put 같은 메서드를 사용할 일이 없는데 열심히 공부해서 협업을 할 단계가 되어야겠습니다.

반응형