iOS/Swift 문법

[Swift] URLSession을 통한 Networking(코드확인 편)

Chafle 2022. 3. 24. 18:11
반응형

지난 블로그에서는 URLSession에 개요에 대해서 한번 살펴봤습니다.

https://accompani-i.tistory.com/146

 

[Swift]URLSession을 통한 네트워킹

IOS에서 http를 이용한 네트워킹은 어떻게 할까요? 바로 URLSession을 사용 하여 네트워킹을 합니다. URLSession URLSession은 URLSessionConfiguration을 이용하여 생성합니다. (configuration = 배열,배치) URLS..

accompani-i.tistory.com

오늘은 코드로 한번 알아보겠습니다.

 

1. URLSessionConfiguration을 할당하고

2. URLSession이 Configuration 사용합니다.

3. URLSession은 여러가지 Task수행합니다.

 

1. URLSessionConfiguration을 할당하고
2. URLSession이 Configuration 사용합니다.

let config = URLSessionConfiguration.default

let session = URLSession(configuration: config)

 


 

3. URLSession은 여러가지 Task수행합니다.
url을 받아와서 data, response, error가 있는지 수행하는 Task입니다.

var urlComponents = URLComponents(string: "https://itunes.apple.com/search?")!

let requestURL = urlComponents.url!

//URLSessionTask수행

let dataTask = session.dataTask(with: requestURL) { ( data, response, error) in

    guard error == nil else { return }

// 에러가 있으면 끝내고 에러 없으면 작업으로 돌아가라는 의미입니다.

 

 


 

 

 

StatusCode 확인해보겠습니다.
StatusCode란?

HTTP의 상태 코드로

요청에 대한 응답처리 상태를 의미합니다.

출처: 위키백과

 

위 사진과 같이 2xx면 성공적인 상태라고 볼 수 있습니다.

자세한 사항은 아래 HTTP링크 참조 바랍니다~

https://developer.mozilla.org/ko/docs/Web/HTTP/Status

 

HTTP 상태 코드 - HTTP | MDN

HTTP 응답 상태 코드는 특정 HTTP 요청이 성공적으로 완료되었는지 알려줍니다. 응답은 5개의 그룹으로 나누어집니다: 정보를 제공하는 응답, 성공적인 응답, 리다이렉트, 클라이언트 에러, 그리고

developer.mozilla.org

 


 

반응형

 

다시 돌아와서 Statuscode를 확인해보면


guard let statusCode = (response as? HTTPURLResponse)?.statusCode else { return }

// response 타입이 URLResponse타입이고, HTTPURLResponse는 URLResponse의 subclass이므로 다운캐스팅합니다.

    let successRange = 200..<300

    guard successRange.contains(statusCode) else {

    //handle response error

        return

 

    }

    guard let resultData = data else { return }

    let resultString = String(data: resultData, encoding: .utf8)

    print("--> result : \(resultString)")

//2xx로 성공하게 되면,  요청한 url을 print합니다.

 

 

반응형