使用翠鸟lib插入授权标题字段

我正在使用Kingfisher来显示来自url的图片,但我的端点需要一个授权标头。 如何在iOS中使用Kingfisher或SDWebImage这些url?

使用Kingfisher,您需要创建一个请求修饰符( AnyModifier类型)并将其作为参数传递给.kf.setImage方法的options部分,然后使用尾随闭包来实际设置图像。

例:

 import Kingfisher let modifier = AnyModifier { request in var r = request // replace "Access-Token" with the field name you need, it's just an example r.setValue(, forHTTPHeaderField: "Access-Token") return r } let url = URL(string: ) let iView =  iView.kf.setImage(with: url, options: [.requestModifier(modifier)]) { (image, error, type, url) in if error == nil && image != nil { // here the downloaded image is cached, now you need to set it to the imageView DispatchQueue.main.async { iView.image = image } } else { // handle the failure print(error) } } 

将自定义标头传递给所有图像请求的集中可靠的方法。

所有setImage(带:,选项:)调用都不需要选项

 class TokenPlugin: ImageDownloadRequestModifier { let token:String init(token:String) { self.token = token } func modified(for request: URLRequest) -> URLRequest? { var request = request request.addValue(token, forHTTPHeaderField: "token") return request } } 

配置

 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { KingfisherManager.shared.defaultOptions = [.requestModifier(TokenPlugin(token:"abcdef123456"))] }