NSMutableURLRequest - 来自Swift Array的HTTPBody

时间:2015-06-13 07:11:24

标签: ios swift nsurlrequest

我需要使用HTTPBody of Array向我的服务器发送一个post请求。这是我的参数数组:

params = [
            "message"  : [
                "alert" : "Find your iPhone",
                "sound" : "Binocular_Default.caf"
            ]
        ]

现在我需要将NSMutableURLRequest的{​​{1}}设置为此数组。我怎么能这样做?

1 个答案:

答案 0 :(得分:7)

使用params创建可变请求。并尝试使用以下代码

var request = NSMutableURLRequest(URL: NSURL(string: "yoururl"))
var session = NSURLSession.sharedSession()
request.HTTPMethod = "POST"

//create dictionary with your parameters
var params = ["username":"test", "password":"pass"] as Dictionary<String, String>

var err: NSError?
request.HTTPBody = NSJSONSerialization.dataWithJSONObject(params, options: nil, error: &err)
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")

var task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
    println("Response: \(response)")
    var strData = NSString(data: data, encoding: NSUTF8StringEncoding)
    println("Body: \(strData)")
    var err: NSError?
    var json = NSJSONSerialization.JSONObjectWithData(data, options: .MutableLeaves, error: &err) as? NSDictionary

    // Did the JSONObjectWithData constructor return an error? If so, log the error to the console
    if(err != nil) {
        println(err!.localizedDescription)
    }
    else {

    }
})

task.resume()