Right Way for changing timeoutIntervalForRequest in Alamofire

前端 未结 4 960
说谎
说谎 2021-01-19 17:23

I changed timeoutIntervalForRequest with

let manager = Alamofire.SessionManager.default
manager.session.configuration.timeoutIntervalForReq         


        
相关标签:
4条回答
  • 2021-01-19 17:53

    For swift3 try this

      var alamoManager: SessionManager?
        //Mark -- Alamofire session manager
                    let configuration = URLSessionConfiguration.default
                    configuration.timeoutIntervalForRequest = 3
                    alamoManager = Alamofire.SessionManager(configuration: configuration)
    alamoManager.request(request).responseJSON {
                            response in
    
                }
    

    Also this is one option

    Alamofire.SessionManager.default.session.configuration.timeoutIntervalForRequest = 300
    
    0 讨论(0)
  • 2021-01-19 18:08

    Try this

    let request = NSMutableURLRequest(url: NSURL.init(string: "URL")! as URL)
    request.timeoutInterval = 3
        // do additional configuration with your request like pass header etc....
    Alamofire.request(request as! URLRequestConvertible).responseJSON {
            response in
            // do whatever you want here
        }
    
    0 讨论(0)
  • 2021-01-19 18:09

    You could do something like:

    lazy var alamofireSession : Alamofire.SessionManager = { [weak self] in
        let configuration = URLSessionConfiguration.default
        configuration.timeoutIntervalForRequest = TimeInterval(30)
        configuration.timeoutIntervalForResource = TimeInterval(30)
        let session = Alamofire.SessionManager(configuration: configuration, delegate: sessionDelegate, serverTrustPolicyManager: nil)   
        return session
    }()
    
    0 讨论(0)
  • 2021-01-19 18:11

    This worked for me :)

    let configuration = URLSessionConfiguration.default
    configuration.timeoutIntervalForRequest = TimeInterval(7)
    configuration.timeoutIntervalForResource = TimeInterval(7)
    let session = URLSession(configuration: configuration)
    
    let task = session.dataTask(with: url) {}
    

    Changes to the configuration of an already initialized URLSession have no effect, per Apple's documentation. If you want a custom timeout, either set the value on your requests, or create a custom URLSession with a custom configuration, as outlined in document

    0 讨论(0)
提交回复
热议问题