我正在使用 swiftHTTP 向我的服务器发出请求,当我的互联网连接速度较慢时,它会转到响应部分!我在下面设置了示例代码:
HTTP.GET("myURL") { response in
let myResponse = response.data // it comes here after the timeout
if response.statusCode == 200 {
//some code
} else {
do {
let jsonError = try JSON(data: myResponse) // in this line it goes to catch because there is no data in myresponse
} catch{
//alert for not having connection
}
}
为什么没有响应就调用响应函数?
我的服务器也说,没有发送请求。
最佳答案
它不会“转到响应”,它会尝试按预期发出 HTTP 请求,无论成功还是错误,它的完成处理程序都会被调用。
返回的响应对象是一个对象,其中包含确定请求发生的情况所需的所有信息。
因此它将包含超时状态代码 ( HTTP 408 ),可能是一条错误消息。如果它根本没有响应,您的应用程序将无法处理这些情况。
例如,假设您的用户在应用中点击他们的个人资料图标,这会发送获取用户个人资料的请求,但超时。你想让用户坐着等待,看着空白的个人资料屏幕吗?捕获错误并优雅地处理它要好得多。在这种情况下,您可以向用户显示一条消息,告诉他们出现问题并关闭空的配置文件屏幕
关于ios - 如果没有连接,为什么调用 swiftHTTP 作为响应处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50860156/