2017-08-01 120 views
0

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

+0

它有一个方法名称'initWithCache:downloader:',所以我想''downloader'参数你可以做到这一点,一个符合'ASImageDownloaderProtocol'的对象。 – Larme

回答

0

我搜索了库文件,发现PINRemoteImageManager中有一个setSharedImageManagerWith(_:URLSessionConfiguration?)。可以在会话配置中添加额外的头部。因此,在迅速3中的代码可以在的appdelegate didFinishLaunchingWithOptions被添加为:

let config = URLSessionConfiguration.ephemeral 

    config.httpAdditionalHeaders = [ 
     "clientid": "yourAdditionalHeader", 
     "clientkey": "yourAdditionalHeader" 
     ] as [AnyHashable:Any] 

    ASPINRemoteImageDownloader.setSharedImageManagerWith(config) 

现在设置在AsNetworkImageNode的URL将发送添加到请求附加头的URL请求。这解决了我的问题。

PINRemoteImageManager的文档读取

“设置PINRemoteImageManager的共享实例所提供的配置实例。如果配​​置为零,[NSURLSessionConfiguration ephemeralSessionConfiguration]被使用。您指定一个自定义的配置,如果你需要配置超时值,cookie策略,额外的HTTP头等。如果已经创建了共享实例,则不应使用此方法。“

因此,类似的代码可以用来配置超时值,cookie策略,当然还有额外的http头文件。希望这会帮助某人。