我有以下swift代码成功提交POST
请求。Swift 2 JSON POST请求[字典与NSMutableURLRequest的HTTPBody字符串]
let request = NSMutableURLRequest(URL: NSURL(string: url)!)
let session = NSURLSession.sharedSession()
request.HTTPMethod = "POST"
request.HTTPBody = "foo=bar&baz=lee".dataUsingEncoding(NSUTF8StringEncoding)
let task = session.dataTaskWithRequest(request, completionHandler: completionHandler)
而不是使用像语法查询参数的,我想使用字典,但是当我做到以下几点:
let request = NSMutableURLRequest(URL: NSURL(string: url)!)
let session = NSURLSession.sharedSession()
request.HTTPMethod = "POST"
request.HTTPBody = try! NSJSONSerialization.dataWithJSONObject(["foo":"bar", "lee":"baz"], options: [])
let task = session.dataTaskWithRequest(request, completionHandler: completionHandler)
(像我所看到周围),似乎提交请求,就好像身体是空的一样。
我的主要问题是:这些语法如何不同,以及结果请求如何不同?
注:从JS来了,我在JavaScript环境中测试端点(jquery.com控制台)像下面,和它的工作成功:
$.ajax({
url: url,
method: 'POST',
data: {
foo: 'bar',
baz: 'lee'
}
});
X WWW的窗体-urlencoded VS应用/ JSON。您尚未将Content-Type标头字段设置为application/json。 – mrkbxt
Omfg,我实际上花了三个小时试图找出这个s ** T ...一种方法不起作用,这是因为我也忽略了这一点。-_- – murphguy