json - 使用 json 数据将 curl post 形成为 swift http post

标签 json swift http url curl

我有一个 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/

相关文章:

javascript - 使用 FB api 创建 Facebook 广告时未找到给定广告组的创意规范

java - 如何使用 Google/GSON 将 JSON 字符串转换为 Java POJO?

Python AWS Lambda 事件 JSON

swift - 在 swift 中查找字符串中字符串的所有 NSRanges 的函数

http - 有谁知道周围有任何 HTTP 一致性测试套件吗?

json - 将多态案例类转换为 json 并返回

swift - 为 Siri 创建监听器

ios - 在 Storyboard中传递值

python - SSL 握手错误 : [Errno 1]

javascript - Node.js 对不受支持的 HTTP 方法的 HTTP 响应?