繁体   English   中英

在swift中发送自定义HTTP标头

[英]Sending custom HTTP headers in swift

我设法从我的服务器获取json但现在我想通过http头添加额外的安全性。 这就是我的代码现在几乎看不到的样子:

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"])
            }
        })

我要添加到此请求的标头如下:

  • uid,它包含一个整数值
  • hash,这是一个字符串

如果它有帮助,我有另一个内置在Titanium框架中的应用程序,它使用以下语法:

xhr.setRequestHeader('uid', userid);
xhr.setRequestHeader('hash', hash);

所以,我基本上在寻找一个Swift等价物。

您正在使用dataTaskWithURL而您应该使用dataTaskWithRequest ,它将NSMutableURLRequest对象作为输入。 使用此对象,您可以设置HTTP标头,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()

我建议你使用Alamofire进行网络https://github.com/Alamofire/Alamofire

它是用Swift编写的,并且易于使用。 看看那个页面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM