ios - 如果没有连接,为什么调用 swiftHTTP 作为响应处理程序?

标签 ios swift httprequest

我正在使用 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/

相关文章:

iOS Xcode 编译错误 : unable to execute command: Segmentation fault: 11

iOS8 自动布局以编程方式固定到相对布局边距

ios - UIDatepicker 工具栏在 ios swift 中无法在横向模式下工作

ios - 在 SKScene 中更改 SKSpriteNode 的纹理

ios - 使用位于另一个 View 中的 UISwitch 修改 UITableView 外观

ios - 更换开关的按钮

Swift:泛型和类型约束,奇怪的行为

java - 使用 JAVA (libGdx) 的 HttpRequest 并使用 PHP 进行处理

.net - EnsureSuccessStatusCode 的使用以及它抛出的 HttpRequestException 的处理

HTML 预取资源