有人知道如何在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
(类似地,NSURL
↦URL
,NSURLSession
↦URLSession
等)。
然后使用 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/