【问题标题】:HTTP request times out. Weak wifi or slow server?HTTP 请求超时。 wifi弱或服务器慢?
【发布时间】:2017-03-03 06:26:43
【问题描述】:

我有一个客户端/服务器应用程序,其中客户端是 iOS 应用程序,服务器是 RESTful api。我收到了关于请求超时的投诉,我知道部分/大部分时间,这是由于 wifi 连接不佳。在这些情况下,我想在客户端显示一条错误消息,指示服务器是否收到了请求。

在 iOS 中是否有可能区分从未到达预期目的地的 HTTP 请求和一直到达预期目的地但从未收到响应的 HTTP 请求?

【问题讨论】:

  • 可能是你的数据偏高
  • 我认为在您得到服务器的响应之前您无法判断
  • 有一种情况发生在您连接到互联网但速度为 0 kb/sec 之类的情况下。所以可达性仍然认为它连接到互联网,但你根本没有收到速度。在这种情况下,只有在很长一段时间后,您才会收到 timeout 错误。

标签: ios swift httprequest


【解决方案1】:
  1. API 仅在您检查您的互联网连接是否可访问后调用。如果未连接到互联网,则显示错误消息(这是由于 wifi 连接不佳)

    例如:Check for internet connection availability in Swift

  2. 勾选后make api call处理错误码404(永远不会到达预期的目的地)和504(超时错误码永远不会收到响应)并让用户只有在状态码为200时才能成功。但它很好也可以处理 401(授权错误)。

我不知道你用的是哪个库,为什么现在不能提供任何代码示例

在 swift 中尝试 Alamofire Library 我建议很好地处理错误代码。

【讨论】:

    猜你喜欢
    • 2022-10-23
    • 2014-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-25
    • 2015-01-20
    • 2017-05-18
    • 1970-01-01
    相关资源
    最近更新 更多