Arrays 带有字符串参数和数组的POST请求

Arrays 带有字符串参数和数组的POST请求,arrays,swift,post,parameters,request,Arrays,Swift,Post,Parameters,Request,我想发出POST请求并传递一些参数。 我要传递的参数是: - Item : String - Length : String - Names : String Array - Age : String 今天我在做这个 var URL: NSURL = NSURL(string: "URL")! var request:NSMutableURLRequest = NSMutableURLRequest(URL:URL) request.HTTPMethod = "POST" request.H

我想发出POST请求并传递一些参数。 我要传递的参数是:

- Item : String
- Length : String
- Names : String Array
- Age : String
今天我在做这个

var URL: NSURL = NSURL(string: "URL")!
var request:NSMutableURLRequest = NSMutableURLRequest(URL:URL)

request.HTTPMethod = "POST"
request.HTTPBody = // parameters here?
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) {
               (response, data, error) in
               println(NSString(data: data, encoding: NSUTF8StringEncoding))
}

有人能提供如何在我的请求中传递上述参数的帮助吗?我不太清楚该怎么做。

为参数添加一个变量:

var params: [String: AnyObject] = [:]
params["item"] = "YOUR_STRING"
params["length"] = "YOUR_STRING"
params["names"] = ["YOUR_STRING1", "YOUR_STRING2"]
params["age"] = "YOUR_STRING"
假设
POST
是一个JSON请求,将它们添加到
HTTPBody
中,如下所示:

request.HTTPBody = try NSJSONSerialization.dataWithJSONObject(params, options: [])

问题是
HTTPBody
需要一个
NSData
对象,因此您可以使用@dsk在这个答案中解释的所需数据创建字典,然后使用
dataWithJSONObject
函数将其转换为JSON作为参数传递,如下所示:

var request:NSMutableURLRequest = NSMutableURLRequest(URL:URL)
request.HTTPMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")

var values: [String: AnyObject] = [:]
values["item"] = "value"
values["length"] = "value"
values["names"] = ["value1", "value2"]
values["age"] = "value"

request.HTTPBody = try! NSJSONSerialization.dataWithJSONObject(values, options: [])
尽管如此,我强烈建议您使用,以更轻松地处理所有的网络过程

我希望这对你有帮助