如何将json数据发布到API swift

时间:2015-08-17 08:11:13

标签: swift api parameters

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

{
"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"]
        ]
    ]

并且效果很好。

2 个答案:

答案 0 :(得分:0)

更改此行:

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

中创建了两个词典的数组

答案 1 :(得分:0)

在同一问题上查看我的answer

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