지난 블로그에서는 URLSession에 개요에 대해서 한번 살펴봤습니다.
https://accompani-i.tistory.com/146
오늘은 코드로 한번 알아보겠습니다.
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
다시 돌아와서 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합니다.
'iOS > Swift 문법' 카테고리의 다른 글
[Swift] AVFoundation에 대하여 (0) | 2022.04.07 |
---|---|
[Swift] URLSession으로 받은 데이터를 오브젝트로 가져오기( (0) | 2022.03.24 |
[Swift]URLSession을 통한 네트워킹 (0) | 2022.03.23 |
[Swift] GCD / Queue / Sync 와Async 차이 (0) | 2022.03.23 |
[Swift] Networking, Concurrency(동시성) (0) | 2022.03.23 |