如何在 asnetworkimagenode url 请求中添加身份验证 header?
How can i add authentication header in asnetworkimagenode url request?
我在 swift 应用程序中使用 AsyncDisplaykit,并在 collectionNode 中使用 ASNetworkImageNode 作为图像视图。我可以以出色的性能加载任何外部 url,但对于我的应用程序,我需要与我们的 api 通信,这需要在每个 GET 请求上发送身份验证 header。我如何在 asnetworkimagenode url 请求中添加身份验证 header 或编写扩展或任何其他解决方法来实现此目的?
我搜索了库文件,发现PINRemoteImageManager中有一个setSharedImageManagerWith(_:URLSessionConfiguration?)。可以在 session 配置中添加额外的 header。所以在 swift 3 代码可以添加到 appdelegate didFinishLaunchingWithOptions as:
let config = URLSessionConfiguration.ephemeral
config.httpAdditionalHeaders = [
"clientid": "yourAdditionalHeader",
"clientkey": "yourAdditionalHeader"
] as [AnyHashable:Any]
ASPINRemoteImageDownloader.setSharedImageManagerWith(config)
现在在 AsNetworkImageNode 中设置 url 将发送 url 请求,并在请求中添加额外的 header。这解决了我的问题。
PINRemoteImageManager 的文档读取
"Sets the shared instance of PINRemoteImageManager to an instance with the supplied configuration. If configuration is nil, [NSURLSessionConfiguration ephemeralSessionConfiguration] is used. You specify a custom configuration if you need to configure timeout values, cookie policies, additional HTTP headers, etc. This method should not be used if the shared instance has already been created."
因此类似的代码可用于配置超时值、cookie 策略,当然还有额外的 http headers。希望这会对某人有所帮助。
我在 swift 应用程序中使用 AsyncDisplaykit,并在 collectionNode 中使用 ASNetworkImageNode 作为图像视图。我可以以出色的性能加载任何外部 url,但对于我的应用程序,我需要与我们的 api 通信,这需要在每个 GET 请求上发送身份验证 header。我如何在 asnetworkimagenode url 请求中添加身份验证 header 或编写扩展或任何其他解决方法来实现此目的?
我搜索了库文件,发现PINRemoteImageManager中有一个setSharedImageManagerWith(_:URLSessionConfiguration?)。可以在 session 配置中添加额外的 header。所以在 swift 3 代码可以添加到 appdelegate didFinishLaunchingWithOptions as:
let config = URLSessionConfiguration.ephemeral
config.httpAdditionalHeaders = [
"clientid": "yourAdditionalHeader",
"clientkey": "yourAdditionalHeader"
] as [AnyHashable:Any]
ASPINRemoteImageDownloader.setSharedImageManagerWith(config)
现在在 AsNetworkImageNode 中设置 url 将发送 url 请求,并在请求中添加额外的 header。这解决了我的问题。
PINRemoteImageManager 的文档读取
"Sets the shared instance of PINRemoteImageManager to an instance with the supplied configuration. If configuration is nil, [NSURLSessionConfiguration ephemeralSessionConfiguration] is used. You specify a custom configuration if you need to configure timeout values, cookie policies, additional HTTP headers, etc. This method should not be used if the shared instance has already been created."
因此类似的代码可用于配置超时值、cookie 策略,当然还有额外的 http headers。希望这会对某人有所帮助。