Swift:标头中带参数的HTTP请求

Tad*_*niš 9 http http-headers http-request http-request-parameters swift

我需要发送一个HTTP请求,我可以这样做,但我在Backendless中的API需要HTTP请求标头中的application-id和secret-key.你能帮忙把它添加到我的代码中吗?谢谢

let urlString = "https://api.backendless.com/v1/data/Pub"
    let session = NSURLSession.sharedSession()
    let url = NSURL(string: urlString)!

    session.dataTaskWithURL(url){(data: NSData?,response: NSURLResponse?, error: NSError?) -> Void in

        if let responseData = data
        {
            do{
                let json = try NSJSONSerialization.JSONObjectWithData(responseData, options: NSJSONReadingOptions.AllowFragments)
                print(json)
            }catch{
                print("Could not serialize")
            }
        }

    }.resume()
Run Code Online (Sandbox Code Playgroud)

Sai*_*ira 24

Swift 4.1和Swift 3

var request = URLRequest(url: url)
request.setValue("secret-keyValue", forHTTPHeaderField: "secret-key")

URLSession.shared.dataTask(with: request) { data, response, error in }
Run Code Online (Sandbox Code Playgroud)

Swift 2.2

包装你NSURLNSMutableRequest是这样的:

let request = NSMutableURLRequest(URL: url)
Run Code Online (Sandbox Code Playgroud)

然后使用此方法向您的request对象添加标头:

request.setValue("secret-keyValue", forHTTPHeaderField: "secret-key")
Run Code Online (Sandbox Code Playgroud)

而不是使用dataTaskWithURL:使用dataTaskWithRequest:方法.

session.dataTaskWithRequest(request){
(data: NSData?,response: NSURLResponse?, error: NSError?) -> Void in }
Run Code Online (Sandbox Code Playgroud)