使用 JSONSerialization 将请求放入 iOS (Swift)
PUT request in iOS (Swift) with JSONSerialization
我正在尝试使用 JSONSerialization 通过 PUT 请求更新属性。
这是我的功能:
func updateRGPDStatus(user:UserModel){
let parameters = ["firstname": user.firsname as Any,
"lastname": user.lastname as Any,
"mail": user.mail as Any,
"has_web_access": user.has_web_access as Any,
"has_mobile_access": user.has_mobile_access as Any,
"id_user": user.id_user as Any,
"has_accepted_rgpd": user.rgpd as Any
] as [String : Any]
guard let url = URL(string: UPDATE_RGPD_STATUS) else { return }
var request = URLRequest(url: url)
request.httpMethod = "PUT"
guard let httpBody = try? JSONSerialization.data(withJSONObject: parameters, options: []) else {
return
}
request.httpBody = httpBody
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession.shared
session.dataTask(with: request) { (data, response, error) in
if let response = response {
print(response)
}
if let data = data {
do {
let json = try JSONSerialization.jsonObject(with: data, options: [])
print(json)
}
catch {
print(error)
}
}
}.resume()
}
这是我应该更新的 json:
{
"user": {
"firstname": "first_name",
"lastname": "last_name",
"mail": "validEmail@mail.com",
"has_web_access": true,
"has_mobile_access": true,
"id_user": 17,
"has_accepted_rgpd": false
}
}
当我发送我的请求时,我得到了 "missing parameters" 类型的错误,因为我没有在我的请求中包含 "user" 属性,我不知道该怎么做我的学习阶段。请任何帮助。谢谢^^
你可以试试
let res:[String : Any] = ["firstname": user.firsname as Any,
"lastname": user.lastname as Any,
"mail": user.mail as Any,
"has_web_access": user.has_web_access as Any,
"has_mobile_access": user.has_mobile_access as Any,
"id_user": user.id_user as Any,
"has_accepted_rgpd": user.rgpd as Any
]
let parameters:[String : Any] = ["user":res] // the new parameters
我最近使用 http put 方法发送了这样的参数
let param = [
"quantity" : quantity!
] as [String : Any]
这对我有用。
我正在尝试使用 JSONSerialization 通过 PUT 请求更新属性。 这是我的功能:
func updateRGPDStatus(user:UserModel){
let parameters = ["firstname": user.firsname as Any,
"lastname": user.lastname as Any,
"mail": user.mail as Any,
"has_web_access": user.has_web_access as Any,
"has_mobile_access": user.has_mobile_access as Any,
"id_user": user.id_user as Any,
"has_accepted_rgpd": user.rgpd as Any
] as [String : Any]
guard let url = URL(string: UPDATE_RGPD_STATUS) else { return }
var request = URLRequest(url: url)
request.httpMethod = "PUT"
guard let httpBody = try? JSONSerialization.data(withJSONObject: parameters, options: []) else {
return
}
request.httpBody = httpBody
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let session = URLSession.shared
session.dataTask(with: request) { (data, response, error) in
if let response = response {
print(response)
}
if let data = data {
do {
let json = try JSONSerialization.jsonObject(with: data, options: [])
print(json)
}
catch {
print(error)
}
}
}.resume()
}
这是我应该更新的 json:
{
"user": {
"firstname": "first_name",
"lastname": "last_name",
"mail": "validEmail@mail.com",
"has_web_access": true,
"has_mobile_access": true,
"id_user": 17,
"has_accepted_rgpd": false
}
}
当我发送我的请求时,我得到了 "missing parameters" 类型的错误,因为我没有在我的请求中包含 "user" 属性,我不知道该怎么做我的学习阶段。请任何帮助。谢谢^^
你可以试试
let res:[String : Any] = ["firstname": user.firsname as Any,
"lastname": user.lastname as Any,
"mail": user.mail as Any,
"has_web_access": user.has_web_access as Any,
"has_mobile_access": user.has_mobile_access as Any,
"id_user": user.id_user as Any,
"has_accepted_rgpd": user.rgpd as Any
]
let parameters:[String : Any] = ["user":res] // the new parameters
我最近使用 http put 方法发送了这样的参数
let param = [
"quantity" : quantity!
] as [String : Any]
这对我有用。