如何 POST json 数据到 API swift
How to POST json data to API swift
我的参数有问题。这是我需要发送的:
{
"id": "10",
"parameters": [
{
"name": "hash",
"value": "hashText"
},
{
"name": "search",
"value": "text"
}
]
}
如何为这个请求创建正确的参数变量。我使用此代码:
var parameters = ["id": "10",
"parameters": [
"name":"hash", "value": "hash_user",
"name":"search", "value": "text"
]]
let url = NSURL(string: "http://myServerName.com/api")
var session = NSURLSession.sharedSession()
let request = NSMutableURLRequest(URL: url!)
request.HTTPMethod = "POST" //set http method as POST
var err: NSError?
request.HTTPBody = NSJSONSerialization.dataWithJSONObject(parameters, options: nil, error: &err)
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
var task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
println("Response: \(response)")
...
感谢帮助!
编辑:
问题出在参数变量中。现在我有:
var parameters = [
"id": "10",
"parameters": [
["name":"hash", "value": "hash_user"]
]
]
效果很好。
更改此行:
var parameters = ["id": "10",
"parameters": [
"name":"hash", "value": "hash_user",
"name":"search", "value": "text"
]]
为此:
var parameters = ["id": "10",
"parameters": [
["name":"hash", "value": "hash_user"],
["name":"search", "value": "text"]
]]
因此您在 parameters
中创建了两个字典的数组
看看我的 关于同一个问题
如果您不需要对来自服务器端的数据进行任何操作,只需从这些函数中的 postData 中删除 val=
我的参数有问题。这是我需要发送的:
{
"id": "10",
"parameters": [
{
"name": "hash",
"value": "hashText"
},
{
"name": "search",
"value": "text"
}
]
}
如何为这个请求创建正确的参数变量。我使用此代码:
var parameters = ["id": "10",
"parameters": [
"name":"hash", "value": "hash_user",
"name":"search", "value": "text"
]]
let url = NSURL(string: "http://myServerName.com/api")
var session = NSURLSession.sharedSession()
let request = NSMutableURLRequest(URL: url!)
request.HTTPMethod = "POST" //set http method as POST
var err: NSError?
request.HTTPBody = NSJSONSerialization.dataWithJSONObject(parameters, options: nil, error: &err)
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
var task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
println("Response: \(response)")
...
感谢帮助!
编辑:
问题出在参数变量中。现在我有:
var parameters = [
"id": "10",
"parameters": [
["name":"hash", "value": "hash_user"]
]
]
效果很好。
更改此行:
var parameters = ["id": "10",
"parameters": [
"name":"hash", "value": "hash_user",
"name":"search", "value": "text"
]]
为此:
var parameters = ["id": "10",
"parameters": [
["name":"hash", "value": "hash_user"],
["name":"search", "value": "text"]
]]
因此您在 parameters
看看我的
如果您不需要对来自服务器端的数据进行任何操作,只需从这些函数中的 postData 中删除 val=