2017-08-01 118 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頭文件。希望這會幫助某人。