我设法从我的服务器获取 json,但现在我想通过 http header 添加额外的安全性。这就是我的代码现在几乎看起来的样子:
let urlPath = "http://www.xxxxxxxx.com"
let url = NSURL(string: urlPath)
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithURL(url!, completionHandler: { (data, response, error) -> Void in
if ((error) != nil) {
println("Error")
} else {
// process json
let jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as! NSDictionary
println(jsonResult["user"])
}
})
我要添加到此请求的 header 如下:
- uid,它保存一个整数值
- 哈希,它是一个字符串
如果有帮助,我有另一个使用此语法在 Titanium 框架中构建的应用程序:
xhr.setRequestHeader('uid', userid);
xhr.setRequestHeader('hash', hash);
所以,我基本上是在寻找 Swift 的等价物。
最佳答案
您正在使用 dataTaskWithURL
而您应该使用 dataTaskWithRequest
,它将 NSMutableURLRequest
对象作为输入。使用此对象,您可以设置 HTTP header 、HTTPBody 或 HTTPMethod
let urlPath = "http://www.xxxxxxxx.com"
let url = NSURL(string: urlPath)
let session = NSURLSession.sharedSession()
let request = NSMutableURLRequest(URL: url!)
request.HTTPMethod = "GET" // make it post if you want
request.addValue("application/json", forHTTPHeaderField: "Content-Type")//This is just an example, put the Content-Type that suites you
//request.addValue(userid, forHTTPHeaderField: "uid")
//request.addValue(hash, forHTTPHeaderField: "hash")
let task = session.dataTaskWithRequest(request, completionHandler: { (data, response, error) -> Void in
//do anything you want
})
task.resume()
关于json - 快速发送自定义 HTTP header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32786566/