形成卷曲后使用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] 
+0

感谢您的回答。你知道我将如何形成一个像这样的嵌套结构? “通知”:{“body”:“你好”,“徽章”:“3”} – mjpablo23

+0

@ mjpablo23,添加到帖子 – Vahid

+0

非常感谢,我会尝试一下 – mjpablo23