我有一个函数可以多次调用REST API。进行初始调用,我得到一些值来进行下一次调用并将JSON解析为自定义对象。完成后,我再次使用新URL调用该函数。我总共打了8个电话,总共需要大约10-14秒。我正在使用Alamofire进行网络连接,使用SwiftyJSON进行解析。我在函数中进行了一系列时间间隔检查,以查看占用最多时间的内容。一旦我获得JSON数据,运行一些逻辑和解析总共需要300毫秒,但是当我通过Alamofire发出请求以获得JSON时所需的时间是1.3 - 1.5秒。我进行了大量的测试,我能得到的最好的是一次通话700毫秒,但大多数超过1秒。当我在Postman中运行它们(总共8个延迟300ms)时,每个需要300ms到700ms。大约快两倍。这听起来是否正确,或者我应该看到请求与邮递员一样长吗?使用相同的计算机并在模拟器和我的手机上运行应用程序具有相同的结果。这是我的精简代码:
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")
}
}
}
答案 0 :(得分:0)
尝试确定Alamofire的反应是否通过200 ok回复。如果出现问题,您可以避免使用200并添加一些错误处理。它会更快。如果您有任何疑问,请在下面发表评论。
谢谢,
Arnav Kaushik