IOS application/Networking

9. URLSession 실습 2

개발자킹콩 2021. 4. 20. 17:29

사진을 클릭하면 확대된다.

 

 

 

주석으로도 정리가 되어있지만 한번더 정리해보자(주석 읽고 이것도 읽기를 권장한다.)

이번에는 실제 네트워킹으로 데이터를 가져와서 이용하는 방법에 대해 실습해볼 것이다.

지난 지산에 URLSession으로 URL을 구성하고, 여기서 필요한 property와 query, incoding, URLComponents에 대한 개념을 배웠다.

우리는 IOS 에서 Networking을 작업할 때 URLSession을 사용한다. URLSession을 만들기 위해서는 URLConfiguration을 3가지 네트워킹 자체 방식을 어떻게 할 것인지에 따라 생성해야하고 URLSession을 만들어야한다. 그리고 실제 네트워킹을 하는 것은 URLSessionTask이다. 이때 어떤 Type의 Task를 하는지 지정해야한다. 업로드, 다운로드, 데이터 받아오기가 존재한다. 우리는 데이터를 받아올 것이기에 URLSessionDataTask로 진행한다. 

 

 

 


 

 

 

 

URLSessionConfiguration과 URLSession을 생성했고, url과 query문을 이용하기 위해 URLComponents를 사용했다.

이렇게 되면 "지드래곤"이라고 적인 영어가 아닌 문장을 알아서 incoding과정을 거치기에 request url을 바로 뽑아냈다.

여기서 주의할 점은 URLComponents와 안의 property의 경우 optional로 데이터를 안전하게 보관하고 있다는 것이다.

 

 

이제 URLSesisonDataTask를 만들기 위해 URLSession의 dataTask를 호출한다. 당연히 request는 우리가 생성한 requestURL이고 반아오는 것은 Data, URLResponse, Error이 존재한다.

에러가 발생하거나 Response status code가 정상범위인 2xx이 아니거나 데이터가 정상적으로 받아오지 못했다면 return 시키면 된다.

 

 

 

 


 

 

 

 

말한 그래로 구현이 완료되었다. 여기서 중요한 것은 표현이다. error이 없는 것은 비교적 간단하게 구현된다.

여기서 statusCode를 가져오는 과정은 생소할 것이다. 우리는 response를 HTTPResponse로 down casting가 되는지 확인해야 한다. 이는 정상적인 Response를 받아왔는지 확인할 수 있다. 여기서 response HTTPResponse로 down casting가 완료되었다면 statusCode를 변수로 받아온다. 여기서 statusCode가 2xx인지를 확인하고 포함되어 있다면 data작업을 들어가면 된다.

 

 

 

 

 

data로 받아온 자료는 현재 우리가 코드로 보려면 encoding과정을 거져야 한다. 바로 .utf8이다. 지금은 utf8이라는 것으로 인코딩을 거쳐야 하는 구나~ 정도로만 이해하면 된다.

 

 

 

 

구현을 완료했으면 실행시키는 메소드를 호출해야겠지!! resume()이다.

 

 

 

 

 

 

 

Postman과 받아온 데이터를 확인해보면 정상적으로 50개의 데이터를 받아온 것을 확인할 수 있다. 

'IOS application > Networking' 카테고리의 다른 글

10. URLSession 실습 3  (0) 2021.04.21
8. URLSession 실습1  (0) 2021.04.18
7. URLSession 개념  (0) 2021.04.18
6. GCD 실습  (0) 2021.04.17
5. DispatchQueue는 어떻게 사용할까?  (0) 2021.04.16