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 같은 메서드를 사용할 일이 없는데 열심히 공부해서 협업을 할 단계가 되어야겠습니다.
반응형