ios - AFNetworking 调用总是延迟 api 调用
问题描述
我正在调用 afnetworking api 调用,每次它的延迟都会超过 10 到 15 秒。仅用于此 api 调用。这是我在下面的代码。
是否有任何选项可以使用调度来获取至少 3 到 5 秒之间的响应数据。
我的代码:
self.myclass.GetArraryfromURL(urlstring, inviewController: self, Withhud: false, completionHandler:{(jsonObject:NSArray,Stats:Bool) in
NSLog("jsonObject=%@", jsonObject);
}})
func GetArraryfromURL(_ urlstring: String,inviewController viewController:UIViewController,Withhud check:Bool,completionHandler:@escaping (_ jsonObject:NSArray,_ Stats:Bool) -> Void)
{
if AFNetworkReachabilityManager.shared().isReachable
{
// HUD = MBProgressHUD()
// let encodestr = urlstring.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)! as String;
let encodestr = urlstring.addingPercentEncoding( withAllowedCharacters: .urlQueryAllowed)
if check == true
{
self.createhudinview(viewController, value:true)
}
print(urlstring)
let manager = AFHTTPSessionManager();
manager.responseSerializer = AFHTTPResponseSerializer()
manager.get(encodestr!, parameters: nil, success:{(task,responseObject) -> Void in
print("JSON: %@", responseObject);
do {
if check == true
{
self.createhudinview(viewController, value:false)
}
let jsonResults = try JSONSerialization.jsonObject(with: (responseObject as! NSData) as Data, options:JSONSerialization.ReadingOptions.mutableContainers) as! NSDictionary
print("status:%@",jsonResults.value(forKey: "result"))
let copyarr = jsonResults.value(forKey: "result") as? NSArray;
let flag = true // true if download succeed,false otherwise
completionHandler(copyarr ?? [],flag);
// success ...
} catch {
// failure
if check == true
{
self.createhudinview(viewController, value:false)
}
let flag = false // true if download succeed,false otherwise
completionHandler(NSArray(),flag);
self.ShowsinglebutAlertwithTitle(self.StringfromKey("WCi"), withAlert:self.StringfromKey("errorinretrive"), withIdentifier:"error")
}
}, failure:{(task,error) -> Void in
print("Error: %@", error);
if check == true
{
self.createhudinview(viewController, value:false)
}
let flag = false // true if download succeed,false otherwise
completionHandler(NSArray(),flag);
self.ShowsinglebutAlertwithTitle(self.StringfromKey("WCi"), withAlert:self.StringfromKey("errorinretrive"), withIdentifier:"error")
})
}
else
{
let flag = false // true if download succeed,false otherwise
completionHandler(NSArray(),flag);
self.ShowsinglebutAlertwithTitle(self.StringfromKey("WCi"), withAlert:self.StringfromKey("Check your connection"), withIdentifier:"internet")
}
}
现在它的延迟为 10 t0 15 秒。但我需要让它至少 5 秒。不确定,我该怎么做。我试过了,dispatch async
但我做不到。
任何可能性。在此先感谢!
解决方案
推荐阅读
- docker - Docker compose in another directory 影响其他容器
- javascript - jQuery 代码不会在内容脚本中运行,只能在页面上运行
- typescript - 如何检查函数是否存在?
- asp.net - 无法让我的 ajax“添加到购物车部分”功能在 ASP.NET MVC 中工作
- c - 绕 Y 轴旋转 gluLookAt
- python-3.x - 用 Pandas 编写 Excel(不同的工作表和行)
- javascript - 如何使用 useRef 反应钩子关注列表项
- object - 在 Delphi 上,我如何引用仅使用一个变量创建的对象?
- bash - 创建变量列表并稍后调用它们 bash
- spring - Spring Boot Web 应用程序:将 Elastic Beanstalk 与 GitHub 同步