【问题标题】:NSMutableURLRequest - HTTPBody from Swift ArrayNSMutableURLRequest - 来自 Swift 数组的 HTTPBody
【发布时间】:2015-06-13 07:11:24
【问题描述】:

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

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

现在我需要将NSMutableURLRequestHTTPBody 设置为这个数组。我该怎么做?

【问题讨论】:

    标签: ios swift nsurlrequest


    【解决方案1】:

    使用您的参数创建可变请求。并尝试使用以下代码

    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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-12
      • 2014-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-24
      • 2014-12-21
      • 1970-01-01
      相关资源
      最近更新 更多