有人知道如何在 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”作为传递到 header 和下一行的标记,我将其注释掉。 request.setvalue - 我将其弹出并收到“无法覆盖数据类型”的错误。我所有的搜索都显示 Objective C 帮助。有没有更好的方法来尝试传递 header ?
最佳答案
在 Swift 3 中,使用 URLRequest
structure而不是 NSURLRequest
(类似地,NSURL
↦ URL
, NSURLSession
↦ URLSession
等)。
然后使用 addValue(_:for<b>HTTPHeaderField</b>:)
添加标题。
// swift 3:
var request = URLRequest(url: URL(string: usersDataPoint)!)
request.addValue("Token \(tokenString)", forHTTPHeaderField: "Authorization")
在 Swift 2.2 中,您使用 NS<b>Mutable</b>URLRequest
如果您需要修改它。
// swift 2:
let request = NSMutableURLRequest(URL: NSURL(string: usersDataPoint)!)
request.addValue("Token \(tokenString)", forHTTPHeaderField: "Authorization")
关于swift - HTTP Headers w/NSURLRequest in swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37245640/