有人知道如何在Swift中使用NSURLRequest配置HTTP header 吗?我在服务器上设置了身份验证,并且只需要向其传递 token ,但是我无法设置 header

我的代码:

func getLatestData() {
        var loggedInUsersNumber:String = SharingManager.sharedInstance.userID
        var usersDataPoint:String = StormDataPoint + loggedInUsersNumber
        activityIND.hidden = false
        activityIND.startAnimating()
        let request = NSURLRequest(URL: NSURL(string: usersDataPoint)!)
        let tokenString = SharingManager.sharedInstance.authToken
        //request.setValue("Token " + tokenString, forKey: "Authorization")
        let urlSession = NSURLSession.sharedSession()
        let task = urlSession.dataTaskWithRequest(request, completionHandler: {
            (data, response, error) -> Void in
            if let error = error {
                print(error)
                return }

我创建了一个属性“tokenString”作为 token ,该 token 将传递到 header 以及我注释掉的下一行。 request.setvalue-我将其 pop 并出现“无法覆盖数据类型”错误。我所有的搜索都显示了Objective C的帮助。有没有更好的方法尝试传递 header ?

最佳答案

在Swift 3中,请使用 URLRequest structure而不是NSURLRequest(类似地,NSURLURLNSURLSessionURLSession等)。

然后使用 addValue(_:forHTTPHeaderField:) 添加 header 。

// swift 3:
var request = URLRequest(url: URL(string: usersDataPoint)!)
request.addValue("Token \(tokenString)", forHTTPHeaderField: "Authorization")

在Swift 2.2中,如果需要修改,请使用 NSMutableURLRequest
// swift 2:
let request = NSMutableURLRequest(URL: NSURL(string: usersDataPoint)!)
request.addValue("Token \(tokenString)", forHTTPHeaderField: "Authorization")

关于swift - 带有NSURLRequest的HTTP header ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37245640/

10-16 18:04