【问题标题】:HTTP Post in Swift [closed]Swift 中的 HTTP Post [关闭]
【发布时间】:2016-08-03 20:52:34
【问题描述】:

我一直在尝试向 Firebase 云消息服务器发送 HTTP 发布请求。这是我一直在使用的代码,我得到了以下响应。根据 Firebase 文档,该消息应该已经发送,除了当我将它发送到我的设备时它没有显示,不是在后台,也不是在 didReceiveRemoteNotification。为什么不显示消息?

Body:Optional({"multicast_id":9176652856657890066,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1470318910131254%0753194407531944"}]})

Error: nil
Success: Optional(1)

代码如下:

let url = NSURL(string: "https://fcm.googleapis.com/fcm/send")!
        let session = NSURLSession.sharedSession()

        let request = NSMutableURLRequest(URL: url)
        request.HTTPMethod = "POST"
        request.cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringCacheData
        let dictionary = ["notification":["title":"BBM","text": message,"project_id": "marketplace-management","registration_id":token!]] as AnyObject
        do {
            try request.HTTPBody = NSJSONSerialization.dataWithJSONObject(dictionary, options: .PrettyPrinted)
        } catch {}
        request.addValue("application/json", forHTTPHeaderField: "Content-Type")
        request.addValue("key=myKey", forHTTPHeaderField: "Authorization")

        let task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
            print("Response: \(response)")
            let strData = NSString(data: data!, encoding: NSUTF8StringEncoding)
            print("Body: \(strData)")
            print("Error: \(error)")
            var json = NSDictionary()
            do { json = try NSJSONSerialization.JSONObjectWithData(data!, options: .MutableLeaves) as! NSDictionary } catch {}
            let parseJSON = json
            let success = parseJSON["success"] as? Int
            print("Success: \(success)")
        })
        task.resume()

【问题讨论】:

  • “它似乎不起作用” - 请编辑您的问题以包含您收到的确切错误消息。此外,向我们展示response 是什么(特别是状态码,有助于诊断发生的情况)。

标签: ios swift http firebase firebase-cloud-messaging


【解决方案1】:
    let dictionary = ["notification":["title":"","text": message,"project_id": "myProjectID","to":token]]
    print(dictionary)//["notification": ["title": "", "project_id": "myProjectID", "to": "12", "text": "message"]]
    do {
        try request.HTTPBody = NSJSONSerialization.dataWithJSONObject(dictionary, options: .PrettyPrinted)
    } catch {}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-29
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    • 2012-07-02
    相关资源
    最近更新 更多