如何在Swift 3中使用PUT方法发布数据?

时间:2017-11-16 04:39:18

标签: ios swift3

在这里,我需要使用PUT方法将数据发布到服务器,但我无法发布它,并且它在邮递员中工作正常。我的json功能是错误的,如果有错,任何人都可以帮我解决这个问题吗?

func itemsIncrementingandDecrementingtocartDownloadJsonWithURL(itemsApi: String){
        print(itemsApi)
        let url = URL(string: itemsApi)
        var request = URLRequest(url: url! as URL)
        request.httpMethod = "PUT"
        let parameters : [String: Any] = ["cartItem":
            [
                "item_id": itemId!,
                "qty": quantity!,
                "quote_id": "\(self.key!)"
            ]
        ]
        print(parameters)
        request.addValue("application/json", forHTTPHeaderField: "Content-Type")
        let session = URLSession(configuration:URLSessionConfiguration.default, delegate: nil, delegateQueue: nil)
        let dataTask = session.dataTask(with: request) { (data, response, error) -> Void in

            if error != nil {

                //handle error
            }
            else {

                let jsonStr = NSString(data: data!, encoding: String.Encoding.utf8.rawValue)
                print("Parsed JSON: '\(jsonStr)'")
            }
        }
        dataTask.resume()
    }

2 个答案:

答案 0 :(得分:0)

首先将参数序列化为json字符串并添加字符串以请求http body。

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])
request.httpBody = postData as Data

这会对你有帮助。

答案 1 :(得分:0)

尝试添加此内容。

let data = try! JSONSerialization.data(withJSONObject: parameters, options: JSONSerialization.WritingOptions.prettyPrinted)
request.httpBody = data