我在我的swift应用程序中使用AsyncDisplaykit,在collectionNode中使用ASNetworkImageNode作为我的imageview。我可以以出色的性能加载任何外部 URL,但对于我的应用程序,我需要与我们的 api 通信,这需要在每个 GET 请求上发送身份验证标头。如何在 asnetworkimagenode url 请求中添加身份验证标头或编写扩展或任何其他解决方法来实现此目的?
我搜索了库文件,发现在 PINRemoteImageManager 中有一个 setSharedImageManagerWith(_:URLSessionConfiguration?(。可以在会话配置中添加其他标头。因此,在 swift 3 中,代码可以添加到 appdelegate didFinishLaunchingWithOptions 中,如下所示:
let config = URLSessionConfiguration.ephemeral
config.httpAdditionalHeaders = [
"clientid": "yourAdditionalHeader",
"clientkey": "yourAdditionalHeader"
] as [AnyHashable:Any]
ASPINRemoteImageDownloader.setSharedImageManagerWith(config)
现在,在AsNetworkImageNode中设置url将发送url请求,并在请求中添加其他标头。这解决了我的问题。
PINRemoteImageManager 的文档读取
"将 PINRemoteImageManager 的共享实例设置为具有所提供配置的实例。如果配置为 nil,则使用 [NSURLSessionConfiguration ephemeralSessionConfiguration]。如果需要配置超时值、Cookie 策略、其他 HTTP 标头等,请指定自定义配置。如果已创建共享实例,则不应使用此方法。
因此,类似的代码可用于配置超时值、cookie 策略,当然还有其他 http 标头。希望这会帮助某人。