形成卷曲后使用JSON数据作为迅速HTTP POST
问题描述:
我有卷曲后,我想变成在迅速一个HTTP URL请求:形成卷曲后使用JSON数据作为迅速HTTP POST
卷曲后(命令行):
curl -X POST --header "Content-Type:application/json" --header "Authorization:key=SERVER_KEY" "https://gcm-http.googleapis.com/gcm/send" --data-ascii '{"to":"DEVICE_TOKEN","data":{"uid":"USER_ID"},"priority":10,"notification":{"body":"Hello","badge":"2"}}'
HTTP请求(SWIFT):
var request = URLRequest(url: URL(string: globalClass.getAppDelegate().global.sendUrl)!)
request.httpMethod = "POST"
var bodyData:String!
bodyData = "title=\(title)&body=\(message)&user_id=\(user_id)"
request.httpBody = bodyData.data(using: .utf8)
let task = URLSession.shared.dataTask(with: request)
我怎么把数据部分到HTTP请求的bodyData?
"data":{"uid":"USER_ID"}
我不知道如何形成它,因为它是一个嵌套结构。
答
斯威夫特2
转换为词典:
let title = "somthing"
let body = "body text"
let params = ["title":mail, "body": pass] as Dictionary<String, String>
转换字典以JSON:
do {
request.HTTPBody = try NSJSONSerialization.dataWithJSONObject(params, options: [])
} catch {
print("Error")
}
添加页眉
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
request.addValue(serverKey, forHTTPHeaderField: "Authorization")
编辑:
转换这个JSON来解释:
"notification":{"body":"Hello","badge":"3"}
let notification = ["body": "Hello", "badge":"3"]
let data: [String: AnyObject] = ["notification": notification as AnyObject]
感谢您的回答。你知道我将如何形成一个像这样的嵌套结构? “通知”:{“body”:“你好”,“徽章”:“3”} – mjpablo23
@ mjpablo23,添加到帖子 – Vahid
非常感谢,我会尝试一下 – mjpablo23