我有一个 curl 帖子,我想快速将其转换为 http url 请求:
curl 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 请求(快速):
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"}
因为是嵌套结构,不知道怎么写。
最佳答案
swift 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]
关于json - 使用 json 数据将 curl post 形成为 swift http post,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42304971/