如何在Swift中将JSON数组作为POST参数传入?

时间:2014-11-16 13:32:15

标签: json swift nsurlconnection

我使用的API接受JSON作为POST参数,但无论我尝试什么 - 它似乎都不接受它。

var post2:NSString = "data={\"item_id\":\"19\"}"

var url2:NSURL = NSURL(string: "\(BASE_URL)item/")!

var postData2:NSData = post.dataUsingEncoding(NSASCIIStringEncoding)!
var postLength2:NSString = String( postData2.length )

println(post2);
var request2:NSMutableURLRequest = NSMutableURLRequest(URL: url2)
request2.HTTPMethod = "POST"
request2.HTTPBody = postData2
request2.setValue(postLength2, forHTTPHeaderField: "Content-Length")
request2.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
request2.setValue("application/json", forHTTPHeaderField: "Accept")
request2.setValue("Bearer ABC123", forHTTPHeaderField: "Authorization")

var reponseError2: NSError?
var response2: NSURLResponse?

var urlData2: NSData? = NSURLConnection.sendSynchronousRequest(request2, returningResponse:&response, error:&reponseError)

let json2 = JSON(data: urlData2!)

println显示

data={"item_id":"9"}

我收到了来自服务器的回复,但似乎我没有传递适当的JSON。

我需要传递什么想法?好像它必须是一个NSString。

谢谢!

1 个答案:

答案 0 :(得分:0)

你得到什么样的错误?

JSON有效。我想知道您的服务器是否期望application/json而不是application/x-www-form-urlencoded

如果服务器期待application/json,则删除" data ="从你的身体发送" {" item_id":" 9"}"。 POST不需要是一个键值对。