我正在尝试使用Alamofire快速发布一个关于身体的帖子请求.
我的json身体看起来像:
{
"IdQuiz" : 102,
"IdUser" : "iosclient",
"User" : "iosclient",
"List":[
{
"IdQuestion" : 5,
"IdProposition": 2,
"Time" : 32
},
{
"IdQuestion" : 4,
"IdProposition": 3,
"Time" : 9
}
]
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试let list使用NSDictionnary,它看起来像:
[[Time: 30, IdQuestion: 6510, idProposition: 10], [Time: 30, IdQuestion: 8284, idProposition: 10]]
Run Code Online (Sandbox Code Playgroud)
我使用Alamofire的请求看起来像:
Alamofire.request(.POST, "http://myserver.com", parameters: ["IdQuiz":"102","IdUser":"iOSclient","User":"iOSClient","List":list ], encoding: .JSON)
.response { request, response, data, error in
let dataString = NSString(data: data!, encoding:NSUTF8StringEncoding)
println(dataString)
}
Run Code Online (Sandbox Code Playgroud)
请求有一个错误,我相信问题是在字典列表,因为如果我提出一个没有列表的请求它工作正常,所以任何想法?
我尝试过建议的解决方案,但我遇到了同样的问题:
let json = ["List":list,"IdQuiz":"102","IdUser":"iOSclient","UserInformation":"iOSClient"] …Run Code Online (Sandbox Code Playgroud) 我将我的项目更新为Swift 3和Alamofire 4.我使用的是自定义编码,但它已改为其他编码方法.我无法找到替代/等同于此:
alamoFire.request(urlString, method: HTTPMethod.post, parameters: [:], encoding: .Custom({
(convertible, params) in
let mutableRequest = convertible.URLRequest.copy() as! NSMutableURLRequest
let data = (body as NSString).data(using: String.Encoding.utf8)
mutableRequest.httpBody = data
return (mutableRequest, nil)
}), headers: headers()).responseJSON { (responseObject) -> Void in
switch responseObject.result {
case .success(let JSON):
success(responseObject: JSON)
case .failure(let error):
failure(error: responseObject)
}
}
Run Code Online (Sandbox Code Playgroud)
我也试过通过制作URLRequest对象和简单的请求它也给我错误
var request = URLRequest(url: URL(string: urlString)!)
let data = (body as NSString).data(using: String.Encoding.utf8.rawValue)
request.httpBody = data
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers()
alamoFire.request(request).responseJSON { …Run Code Online (Sandbox Code Playgroud) 我在我的项目中安装了Alamofire,现在这就是我所做的.
我安装了邮差,我把我的网址和内部的一个xml对象,我得到了我的结果.
这是我对邮递员所做的一切
我现在如何使用Alamofire或SWXMLHash发送它,因为我发送邮件
提前致谢!
编辑
我从另一个问题尝试了这个:
Alamofire.request(.POST, "https://something.com" , parameters: Dictionary(), encoding: .Custom({
(convertible, params) in
let mutableRequest = convertible.URLRequest.copy() as! NSMutableURLRequest
let data = (self.testString as NSString).dataUsingEncoding(NSUTF8StringEncoding)
mutableRequest.HTTPBody = data
return (mutableRequest, nil)
}))
.responseJSON { response in
print(response.response)
print(response.result)
}
}
Run Code Online (Sandbox Code Playgroud)
但它没有发送任何东西
这是日志:
可选({URL:https: //something.com } {状态代码:200,headers {Connection ="keep-alive";"Content-Length"= 349;"Content-Type"="application/xml";日期="Wed,2016年11月2日21:13:32 GMT"; Server = nginx;"Strict-Transport-Security"="max-age = 31536000; includeSubDomains";}})
失败
编辑
如果没有简单的添加,请不要忘记参数参数:参数:Dictionary()