【问题标题】:Alamofire requests slow?Alamofire 请求缓慢?
【发布时间】:2018-02-10 22:46:20
【问题描述】:

我有一个函数可以多次调用 REST API。进行了初始调用,我得到了一些值来进行下一次调用并将 JSON 解析为自定义对象。完成后,我会使用新的 URL 再次调用该函数。我总共打了 8 个电话,总共需要大约 10-14 秒。我使用 Alamofire 进行网络连接和 SwiftyJSON 进行解析。我在函数中进行了一系列时间间隔检查,以查看占用最多时间的内容。一旦我取回 JSON 数据,运行一些逻辑和解析总共需要大约 300 毫秒,但是当我通过 Alamofire 发出请求以获取 JSON 数据时所需的时间是 1.3 - 1.5 秒。我进行了大量测试,我能得到的最好结果是一次通话 700 毫秒,但大多数都超过 1 秒。当我在 Postman 中运行它们(总共 8 个,延迟 300 毫秒)时,每个需要 300 毫秒到 700 毫秒。大约快一倍。这听起来对吗?或者我应该看到请求需要像在 Postman 中一样长的时间吗?使用同一台计算机并在模拟器和我的手机上运行应用程序,结果相同。这是我的精简代码:

func parse() {
    Alamofire.request(jsonURL).responseJSON { response in
        switch response.result {
        case .success(let value):
            let json = JSON(value)
            //Check for 200 code
            if json["meta"]["code"].intValue == 200 {
                // doing lot of stuff
                }
        case .failure(let error):
            print(error)
            print("json failed")

        }
    }
}

【问题讨论】:

    标签: json swift rest alamofire


    【解决方案1】:

    尝试确定响应是否返回 200 ok 通常从 Alamofire 很慢。如果出现问题,您可以避免 200 并添加一些运行的错误处理。会快很多。如果您有任何问题,请在下方评论。

    谢谢,

    阿纳夫考希克

    【讨论】:

    • 感谢您的回复。我删除了那张支票,当我将时间与邮递员进行比较时,它似乎没有太大的影响。以防万一,我会保留它。
    • 请您发布您的日志和邮递员结果。另外,你能告诉我你的代码吗?如果没有太大的影响,您可能希望保留代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多