0

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

4

1 回答 1

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 的共享实例设置为具有提供配置的实例。如果配​​置为零,则使用 [NSURLSessionConfiguration ephemeralSessionConfiguration]。如果需要配置超时值、cookie 策略、附加 HTTP 标头等,请指定自定义配置。这如果已创建共享实例,则不应使用该方法。”

因此,类似的代码可用于配置超时值、cookie 策略,当然还有额外的 http 标头。希望这会对某人有所帮助。

于 2017-08-07T07:05:33.927 回答