[Swift] URLSession을 통한 Networking(코드확인 편)
지난 블로그에서는 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합니다.