NSURLErrorDomain 错误代码说明是什么

作者:编程家 分类: ios 时间:2025-11-26

根据 NSURLErrorDomain 错误代码说明是什么?

NSURLErrorDomain 是苹果公司的错误域,用于描述与网络请求相关的错误。在进行网络请求时,我们可能会遇到各种错误,比如无法连接到服务器、请求超时、SSL证书验证失败等等。这些错误会被分配一个特定的错误代码,以便开发者能够更好地理解和处理错误情况。

在 NSURLErrorDomain 中,错误代码的范围从 -1200 到 -1022,每个错误代码都代表一个特定的网络请求错误。下面我们将简要介绍一些常见的 NSURLErrorDomain 错误代码及其含义:

1. NSURLErrorUnknown (-1):未知错误,无法确定具体的错误原因。

2. NSURLErrorCancelled (-999):请求被取消。

3. NSURLErrorBadURL (-1000):URL 格式不正确。

4. NSURLErrorTimedOut (-1001):请求超时。

5. NSURLErrorUnsupportedURL (-1002):不支持的 URL。

6. NSURLErrorCannotFindHost (-1003):找不到主机。

7. NSURLErrorCannotConnectToHost (-1004):无法连接到主机。

8. NSURLErrorNetworkConnectionLost (-1005):网络连接丢失。

9. NSURLErrorDNSLookupFailed (-1006):DNS 解析失败。

10. NSURLErrorHTTPTooManyRedirects (-1007):HTTP 重定向次数过多。

11. NSURLErrorResourceUnavailable (-1008):资源不可用。

12. NSURLErrorNotConnectedToInternet (-1009):无网络连接。

13. NSURLErrorRedirectToNonExistentLocation (-1010):重定向到不存在的位置。

14. NSURLErrorBadServerResponse (-1011):服务器响应异常。

15. NSURLErrorUserCancelledAuthentication (-1012):用户取消了身份验证。

16. NSURLErrorUserAuthenticationRequired (-1013):需要用户身份验证。

17. NSURLErrorZeroByteResource (-1014):零字节资源。

18. NSURLErrorCannotDecodeRawData (-1015):无法解码原始数据。

19. NSURLErrorCannotDecodeContentData (-1016):无法解码内容数据。

案例代码:

下面是一个简单的使用 URLSession 发起网络请求的示例代码,并处理可能出现的 NSURLErrorDomain 错误:

swift

guard let url = URL(string: "https://www.example.com") else {

print("Invalid URL")

return

}

let session = URLSession.shared

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

if let error = error as NSError?, error.domain == NSURLErrorDomain {

if error.code == NSURLErrorCannotConnectToHost {

print("无法连接到主机")

} else if error.code == NSURLErrorTimedOut {

print("请求超时")

} else if error.code == NSURLErrorNotConnectedToInternet {

print("无网络连接")

} else {

print("发生未知错误")

}

} else if let error = error {

print("发生其他错误:\(error.localizedDescription)")

} else {

// 处理请求成功的情况

if let data = data {

// 处理返回的数据

}

}

}

task.resume()

在上面的示例代码中,我们首先创建一个 URLSession 实例,并使用其 dataTask(with:completionHandler:) 方法发起一个网络请求。在 completion handler 中,我们首先判断错误是否为 NSURLErrorDomain 错误,如果是,则根据错误代码进行相应的处理和提示。如果不是 NSURLErrorDomain 错误,那么可能是其他类型的错误,我们可以通过 error.localizedDescription 获取到具体的错误描述信息进行处理。最后,如果没有出现错误,则可以处理请求成功的情况,比如解析返回的数据。

NSURLErrorDomain 错误代码能够帮助开发者更好地理解和处理与网络请求相关的错误。通过对错误代码的分析和处理,我们可以根据具体的错误情况给用户提供更加准确和友好的提示,以提升用户体验。在实际的开发中,我们应该熟悉常见的错误代码,并根据需要做出相应的处理。