如何在asnetworkimagenode url请求中添加身份验证标头?

时间:2017-08-01 06:57:37

标签: ios swift asyncdisplaykit

我在swift应用程序中使用AsyncDisplaykit,在collectionNode中使用ASNetworkImageNode作为我的imageview。我可以加载任何具有出色性能的外部URL但是对于我的应用程序,我需要与我们的api通信,这需要在每个GET请求上发送身份验证标头。如何在asnetworkimagenode url请求中添加身份验证标头或编写扩展或任何其他解决方法来实现此目的?

1 个答案:

答案 0 :(得分:1)

我搜索了库文件,发现在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标头。希望这会对某人有所帮助。