Alamofire 会话配置未反映在请求中
Posted
技术标签:
【中文标题】Alamofire 会话配置未反映在请求中【英文标题】:Alamofire session configurations are not reflected in the request 【发布时间】:2021-09-02 13:23:42 【问题描述】:Alamofire 版本:5.1
我们正在修改我们的 alamofire 会话配置如下:
let apiManager: Session =
let configuration = URLSessionConfiguration.af.default
configuration.timeoutIntervalForRequest = 20
configuration.requestCachePolicy = .reloadIgnoringCacheData
configuration.urlCache = nil
let manager = Alamofire.Session(
configuration: configuration,
cachedResponseHandler: ResponseCacher(behavior: .doNotCache)
)
return manager
()
我们提出如下要求
apiManager.request(
url,
method: .post,
parameters: requestBodyParameters,
encoding: JSONEncoding.default,
headers: generateHeaders(enableAuth: authorisation) // to generate headers
)
.validate(statusCode: 200..<300)
.responseJSON response in
print(response)
但是请求配置没有更新,它们保持默认值
[Timeout]
60
[Cache policy]
UseProtocolCachePolicy
【问题讨论】:
【参考方案1】:您正在查看由 Alamofire 生成的 URLRequest
,它不包含 URLSession
级别的配置,并且永远不会反映缓存自定义。如果您想查看实际的URLRequest
在通过Alamofire 和URLSession
后执行,您可以访问最新的URLSessionTask
,通过使用@ 执行Alamofire Request
(在本例中为DataRequest
) 987654328@。但是,就像我说的那样,这永远不会反映您附加的其他行为,例如 ResponseCacher
,因为它们存在于请求管道之外。
【讨论】:
当使用过期的访问令牌发出请求时,我也会收到错误消息。 CredStore - performQuery - 复制匹配的凭据时出错。错误=-25300,查询= class= inet; "m_Limit" = "m_LimitAll"; ptcl = htps; “r_Attributes” = 1; sdmn = "rffjjkqazc.execute-api.us-east-1.amazonaws.com"; srvr = "rffjjkqazc.execute-api.us-east-1.amazonaws.com";同步 = 同步;以上是关于Alamofire 会话配置未反映在请求中的主要内容,如果未能解决你的问题,请参考以下文章
为啥不建议在 Alamofire 中修改授权标头的会话配置?