我刚刚开始看一看马特的新阿拉莫菲尔·Swift 网络库,我不太确定如何将其用于自定义标题.
我试图将AFNetworking转换为Alamofire的代码如下:
let request = NSMutableURLRequest(URL: url)
request.setValue(authorizationToken, forHTTPHeaderField:"Authorization")
我刚刚开始看一看马特的新阿拉莫菲尔·Swift 网络库,我不太确定如何将其用于自定义标题.
我试图将AFNetworking转换为Alamofire的代码如下:
let request = NSMutableURLRequest(URL: url)
request.setValue(authorizationToken, forHTTPHeaderField:"Authorization")
根据官方文件,不建议修改会话配置:
对于授权或内容类型标题,不建议这样做.
因此,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
从阿拉莫菲尔v1开始.0答案不再有效.在新版本中,应在NSURLSessionConfiguration
的HTTPAdditionalHeaders
属性中添加其他标题
Alamofire.Manager.sharedInstance.session.configuration.HTTPAdditionalHeaders = ["Authorization": authorizationToken]