gpt4 book ai didi

ios - Alamofire 超时不起作用

转载 作者:行者123 更新时间:2023-11-28 06:23:10 24 4
gpt4 key购买 nike

在我的应用程序中,我使用 Alamofire 进行网络请求并创建了一个类。这是类

class MGNetworking: NSObject{


private class func getAlamofireManager() -> SessionManager {
let configuration = URLSessionConfiguration.default
configuration.timeoutIntervalForResource = 180 // seconds
configuration.timeoutIntervalForRequest = 180 // seconds

let alamofireManager = Alamofire.SessionManager(configuration: configuration)

return alamofireManager
}

class func requestGETURL(_ strURL: String, success:@escaping (JSON) -> Void, failure:@escaping (Error) -> Void) {

getAlamofireManager().request(strURL,method: .get).responseJSON { (responseObject) -> Void in

if responseObject.result.isSuccess {
let resJson = JSON(responseObject.result.value!)
success(resJson)
}
if responseObject.result.isFailure {
let error : Error = responseObject.result.error!
failure(error)
}
}
}



class func requestPOSTURL(_ strURL : String, params : [String : AnyObject]?, headers : [String : String]?, success:@escaping (JSON) -> Void, failure:@escaping (Error) -> Void){

getAlamofireManager().request(strURL, method: .post, parameters: params, encoding: URLEncoding.default, headers: headers).responseJSON { (responseObject) -> Void in

if responseObject.result.isSuccess {
let resJson = JSON(responseObject.result.value!)
success(resJson)
}
if responseObject.result.isFailure {
let error : Error = responseObject.result.error!
failure(error)
}
}
}

}

我想更改我的网络请求的超时时间。我创建了方法 getAlamofireManager() 但当我调用此方法时,我的请求在此处取消是错误。

FAILURE: Error Domain=NSURLErrorDomain Code=-999 "cancelled"

当我将 getAlamofireManager() 更改为 Alamofire.request 时,它开始完美运行。

最佳答案

我可以假设问题与 this 有关报告的问题。

所以让我们重写代码:

class MGNetworking: NSObject{

var manager: SessionManager?

init() {
manager = getAlamofireManager()
}

private class func getAlamofireManager() -> SessionManager {
let configuration = URLSessionConfiguration.default
configuration.timeoutIntervalForResource = 180 // seconds
configuration.timeoutIntervalForRequest = 180 // seconds

let alamofireManager = Alamofire.SessionManager(configuration: configuration)

return alamofireManager
}
}

所以现在使用 manager 而不是 getAlamofireManager() 来处理请求

关于ios - Alamofire 超时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42759693/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com