在这里,我需要使用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()
}
答案 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