如何 POST json 数据到 API swift

How to POST json data to API swift

我的参数有问题。这是我需要发送的:

{
"id": "10",
"parameters": [
   {
  "name": "hash",
  "value": "hashText"
},
{
  "name": "search",
  "value": "text"
    }
  ] 
}

如何为这个请求创建正确的参数变量。我使用此代码:

   var parameters = ["id": "10",
        "parameters": [
            "name":"hash", "value": "hash_user",
            "name":"search", "value": "text"
    ]]

    let url = NSURL(string: "http://myServerName.com/api")
    var session = NSURLSession.sharedSession()

    let request = NSMutableURLRequest(URL: url!)
    request.HTTPMethod = "POST" //set http method as POST

    var err: NSError?
    request.HTTPBody = NSJSONSerialization.dataWithJSONObject(parameters, 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 parameters = [
        "id": "10",
        "parameters": [
            ["name":"hash", "value": "hash_user"]
        ]
    ]

效果很好。

更改此行:

var parameters = ["id": "10",
        "parameters": [
            "name":"hash", "value": "hash_user",
            "name":"search", "value": "text"
    ]]

为此:

var parameters = ["id": "10",
        "parameters": [
            ["name":"hash", "value": "hash_user"],
            ["name":"search", "value": "text"]
    ]]

因此您在 parameters

中创建了两个字典的数组

看看我的 关于同一个问题

如果您不需要对来自服务器端的数据进行任何操作,只需从这些函数中的 postData 中删除 val=