更改 AlamoFire 配置

Posted

技术标签:

【中文标题】更改 AlamoFire 配置【英文标题】:Changing AlamoFire Config 【发布时间】:2016-08-31 04:51:26 【问题描述】:

在我的项目使用的一个类中,有一个 var 来存储 alamofire 管理器:

var alamoManager: Manager!

在应用程序中重复调用一个方法来配置这个管理器,如下所示:

func configAlamoManager() 

   let configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
   configuration.timeoutIntervalForRequest = 20
   //ETC

   alamoManager = Alamofire.Manager(configuration: configuration)

我的应用中有一个 HTTP 调用偶尔会返回一个 999 canceled 错误代码。我怀疑这是因为当前尝试执行请求的管理器被configAlamoManager() 方法中的另一个管理器替换。有什么方法可以在不创建新实例的情况下更改管理器中的配置设置? alamoManager.session.configuration 没有二传手。对此的任何指示将不胜感激!谢谢

【问题讨论】:

任何解决方案? 【参考方案1】:

您应该覆盖实际NSURLRequest 中的配置,而不是更改配置并创建新的Manager

let urlRequest = NSURLRequest(url: url)
urlRequest.timeoutInterval = 20

Alamofire.request(urlRequest).responseJSON  response in
    debugPrint(response)

有关您可以使用 NSURLRequest 覆盖的内容的更多信息,我会查看 docs。

【讨论】:

以上是关于更改 AlamoFire 配置的主要内容,如果未能解决你的问题,请参考以下文章

更改 Alamofire.SessionManager 的 serverTrustPolicy 以仍然使用***便利方法,如 Alamofire.request

在 Alamofire 函数调用中更改属性值

在 Alamofire 中更改超时时间

如何使用 Alamofire 更改全局变量?

Alamofire 4 重试器和适配器无法看到更改的 accessToken

Swift - Alamofire Post,如果为真则更改图像