[swift] Swift로 HTTP 요청 에러 처리하기
Swift는 iOS 및 macOS 애플리케이션 개발을 위한 강력한 프로그래밍 언어입니다. 웹 서비스와의 통신을 위해 HTTP 요청을 보내는 것은 일반적인 작업 중 하나입니다. 하지만 때로는 서버에서 오류 응답을 받을 수 있습니다. 이러한 상황에 대처하기 위해 Swift에서 HTTP 요청 에러를 처리하는 방법에 대해 알아보겠습니다.
1. URLSession을 이용한 HTTP 요청
Swift에서 HTTP 요청을 보내기 위해 URLSession
을 이용할 수 있습니다. 다음은 간단한 GET 요청을 보내는 예제입니다.
guard let url = URL(string: "https://api.example.com/data") else {
print("Invalid URL")
return
}
let task = URLSession.shared.dataTask(with: url) { (data, response, error) in
if let error = error {
// 에러 처리
print("Error: \(error.localizedDescription)")
return
}
// 성공적인 응답 처리
if let httpResponse = response as? HTTPURLResponse {
if httpResponse.statusCode == 200 {
// 데이터 처리
if let data = data {
// 데이터 파싱
// ...
}
} else {
// 서버에서 에러 응답
print("Server Error: \(httpResponse.statusCode)")
}
}
}
task.resume()
2. 에러 처리하기
위의 예제에서는 dataTask(with:completionHandler:)
메서드의 completion handler에서 error
매개변수를 통해 에러 정보를 받아올 수 있습니다. 이를 이용하여 HTTP 요청에서 발생한 에러를 처리할 수 있습니다.
if let error = error {
print("Error: \(error.localizedDescription)")
// 에러 처리 로직
return
}
3. 서버에서의 에러 응답 처리하기
서버에서 오류 응답을 받은 경우, HTTPURLResponse
객체를 통해 오류 상태 코드를 확인할 수 있습니다. 예를들어, 400 상태 코드는 클라이언트 요청 에러를 나타내며, 500 상태 코드는 서버 내부 에러를 나타냅니다.
if let httpResponse = response as? HTTPURLResponse {
if httpResponse.statusCode == 200 {
// 성공적인 응답 처리
if let data = data {
// 데이터 파싱
// ...
}
} else {
// 서버에서의 에러 응답 처리
print("Server Error: \(httpResponse.statusCode)")
// 에러 처리 로직
}
}
마무리
이제 Swift에서 HTTP 요청 에러를 처리하는 방법에 대해 알아보았습니다. 이를 통해 애플리케이션에서 안정적인 웹 서비스 통신을 구현할 수 있습니다. 충분한 에러 처리를 통해 사용자 경험을 개선하고 예외 상황에 대처할 수 있습니다.