Alamofire 超时不工作

Posted

技术标签:

【中文标题】Alamofire 超时不工作【英文标题】:Alamofire Time Out Not Working 【发布时间】:2015-10-28 11:25:39 【问题描述】:

我在 swift 2.0 中使用 Alamofire 来执行发布请求。一切正常,但现在我必须为请求设置一个超时间隔,这就是我所做的:

let configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
            configuration.timeoutIntervalForRequest = 300;
            let Manager = Alamofire.Manager(configuration: configuration)


            Manager.request(.POST, URL, parameters:param as? [String : AnyObject])......

现在 response.result.isSuccess 总是假的,不管我放了多少秒(1 到 1000)。这是为什么?请注意,调用不会等待 1000 秒然后得到此响应。

【问题讨论】:

【参考方案1】:

对于任何有问题的人,这对我有用。

设置一个全局变量

    var alamofireManager : Alamofire.Manager?

然后

 let configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
            configuration.timeoutIntervalForResource = 1 // seconds for testing

            self.alamofireManager = Alamofire.Manager(configuration: configuration)

             self.alamofireManager!.request(.POST, URL, parameters: param as? [String : AnyObject],  headers: headers)
.responseString
                 response in

                    print ("the response: \(response.description)") //will return a timeout error

【讨论】:

以上是关于Alamofire 超时不工作的主要内容,如果未能解决你的问题,请参考以下文章

Alamofire 超时不起作用

Alamofire:在特定 URL 和设备上请求超时

如果连接了 Socket.io,Alamofire 请求总是失败并显示“请求超时”

Alamofire超时无法在Swift 3中运行

如何使用 alamofire 上传 zip 数据?

在 Alamofire 中更改超时时间