加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift – 如何使用Alamofire与自定义标题

发布时间:2020-12-14 06:04:10 所属栏目:百科 来源:网络整理
导读:我刚刚开始看看Mattt的美妙的新Alamofire swift网络库,不知道如何使用它与自定义标题。 代码我试图从AFNetworking转换为Alamofire是这样的: let request = NSMutableURLRequest(URL: url)request.setValue(authorizationToken,forHTTPHeaderField:"Authori
我刚刚开始看看Mattt的美妙的新Alamofire swift网络库,不知道如何使用它与自定义标题。

代码我试图从AFNetworking转换为Alamofire是这样的:

let request = NSMutableURLRequest(URL: url)
request.setValue(authorizationToken,forHTTPHeaderField:"Authorization")
根据官方文档,不建议修改会话配置:

This is not recommended for Authorization or Content-Type headers.
Instead,use URLRequestConvertible and ParameterEncoding,
respectively.

因此,用于授权的URLRequestConvertible的示例用法是:

enum Router: URLRequestConvertible {
    static let baseUrlString = "some url string"

    case Get(query: String)

    var URLRequest: NSMutableURLRequest {
    let (path: String,parameters: [String: AnyObject]?) = {
        switch self {
            case .Get(let query):
                return ("/get",["q": query])
            }
        }()

        let URL = NSURL(string: Router.baseUrlString)!
        let URLRequest = NSMutableURLRequest(URL: URL.URLByAppendingPathComponent(path))
        // set header fields
        URLRequest.setValue("a",forHTTPHeaderField: "Authorization")

        let encoding = Alamofire.ParameterEncoding.URL        
        return encoding.encode(URLRequest,parameters: parameters).0
    }
}

以及当您想要提出请求时:

Manager.sharedInstance.request(Router.Get(query: "test"))

有关URLRequestConvertible的更多信息:https://github.com/Alamofire/Alamofire#urlrequestconvertible

老答案

截至Alamofire v1.0 Pers回答不再有效。在新版本中,附加标题应该添加到NSURLSessionConfiguration的HTTPAdditionalHeaders属性

Alamofire.Manager.sharedInstance.session.configuration.HTTPAdditionalHeaders = ["Authorization": authorizationToken]

更多信息:https://github.com/Alamofire/Alamofire/issues/111

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读