我有以下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