let str = "payload={'channel': '#bottest', 'username': 'garrettogrady', 'text': 'This post is coming from swift.'}"
let strData = (str as NSString).dataUsingEncoding(NSUTF8StringEncoding)
let cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringLocalCacheData
let url = NSURL(string: "web hook url (leaving it out for privacy reasons")
var request = NSMutableURLRequest(URL: url!, cachePolicy: cachePolicy, timeoutInterval: 2.0)
request.HTTPMethod = "POST"
request.HTTPBody = strData
println("printing to slack")
var error : NSError? = nil
if let data = NSURLConnection.sendSynchronousRequest(request, returningResponse: nil, error: &error) {
let results = NSString(data:data, encoding:NSUTF8StringEncoding)
println(results)
}
else
{
println("data invalid")
println(error)
}
所以当我运行这段代码时,我不会出错。但是当我打印结果时,它说“有效负载不是有效的 JSON”
最佳答案
Slack 期望在 JSON 上使用双引号。您得到的结果是 Slack 拒绝了您当前形成的 JSON。
这是我自己的代码,它可以让您合并各个字段的变量值,我认为这是您的下一步。
let channel = "#bottest"
let username = "garrettogrady"
let text = "This post is coming from swift."
let payload = "payload={\"channel\": \"\(channel)\", \"username\": \"\(username!)\", \"text\": \"\(text)\""}"
编辑:这个问题启发了我创建一个对象来实现 Slack webhook API。这是给任何感兴趣的人的:https://github.com/pfj3/SwiftSlackbots
关于ios - (有效负载不是有效的 JSON)尝试快速打印到空闲空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30200622/