Notice
Recent Posts
Recent Comments
Link
투케이2K
199. (ios/swift) [간단 소스] URLError 사용해 URLSession http 요청 시 timedOut 타임 아웃 에러 타입 체크 방법 본문
IOS
199. (ios/swift) [간단 소스] URLError 사용해 URLSession http 요청 시 timedOut 타임 아웃 에러 타입 체크 방법
투케이2K 2022. 9. 16. 13:14[개발 환경 설정]
개발 툴 : XCODE
개발 언어 : SWIFT
[소스 코드]
let dataTask = session.dataTask(with: requestURL, completionHandler: { (data, response, error) in
// [error가 존재하면 종료]
guard error == nil else {
print("")
print("===============================")
print("[C_Cache_Clear_Check >> checker() :: http 통신 캐시 초기화 요청 실패]")
print("-------------------------------")
print("주 소 :: ", requestURL)
print("-------------------------------")
print("fail :: ", error?.localizedDescription ?? "")
print("===============================")
print("")
if (error as? URLError)?.code == .timedOut { // [커넥션 타임 아웃 체크]
print("")
print("===============================")
print("[C_Cache_Clear_Check >> checker() :: http 통신 커넥션 타임 아웃 발생]")
print("===============================")
print("")
// [콜백 반환]
completion(false, error?.localizedDescription ?? "")
return
}
else {
// [콜백 반환]
completion(false, error?.localizedDescription ?? "")
return
}
}
// [status 코드 체크 실시]
let successsRange = 200..<300
guard let statusCode = (response as? HTTPURLResponse)?.statusCode, successsRange.contains(statusCode)
else {
print("")
print("===============================")
print("[C_Cache_Clear_Check >> checker() :: http 통신 캐시 초기화 요청 에러]")
print("-------------------------------")
print("주 소 :: ", requestURL)
print("-------------------------------")
print("error :: ", (response as? HTTPURLResponse)?.statusCode ?? 0)
print("-------------------------------")
print("msg :: ", (response as? HTTPURLResponse)?.description ?? "")
print("===============================")
print("")
// [콜백 반환]
completion(false, (response as? HTTPURLResponse)?.description ?? "")
return
}
// [response 데이터 획득]
let resultCode = (response as? HTTPURLResponse)?.statusCode ?? 0
let resultLen = data! // 데이터 길이
let resultData = String(data: resultLen, encoding: .utf8) ?? "" // [데이터 확인]
print("")
print("===============================")
print("[C_Cache_Clear_Check >> checker() :: http 통신 응답 확인 실시]")
print("===============================")
print("")
})
// [network 통신 실행]
dataTask.resume()
반응형
'IOS' 카테고리의 다른 글
Comments