我正在尝试使用Alamofire快速发布尸体的发布请求。
我的json主体看起来像:
{ "IdQuiz" : 102, "IdUser" : "iosclient", "User" : "iosclient", "List":[ { "IdQuestion" : 5, "IdProposition": 2, "Time" : 32 }, { "IdQuestion" : 4, "IdProposition": 3, "Time" : 9 } ] }
我正在尝试使let listNSDictionnary看起来像:
let
list
[[Time: 30, IdQuestion: 6510, idProposition: 10], [Time: 30, IdQuestion: 8284, idProposition: 10]]
我使用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) }
该请求有一个错误,我相信问题出在字典列表上,因为如果我在没有列表的情况下发出请求,它就可以正常工作,所以有什么主意吗?
我已经尝试过建议的解决方案,但是我遇到了同样的问题:
let json = ["List":list,"IdQuiz":"102","IdUser":"iOSclient","UserInformation":"iOSClient"] let data = NSJSONSerialization.dataWithJSONObject(json, options: NSJSONWritingOptions.PrettyPrinted,error:nil) let jsons = NSString(data: data!, encoding: NSUTF8StringEncoding) Alamofire.request(.POST, "http://myserver.com", parameters: [:], encoding: .Custom({ (convertible, params) in var mutableRequest = convertible.URLRequest.copy() as! NSMutableURLRequest mutableRequest.HTTPBody = jsons!.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false) return (mutableRequest, nil) })) .response { request, response, data, error in let dataString = NSString(data: data!, encoding:NSUTF8StringEncoding) println(dataString) }
你近了 参数字典格式看起来不正确。您应该尝试以下方法:
let parameters: [String: AnyObject] = [ "IdQuiz" : 102, "IdUser" : "iosclient", "User" : "iosclient", "List": [ [ "IdQuestion" : 5, "IdProposition": 2, "Time" : 32 ], [ "IdQuestion" : 4, "IdProposition": 3, "Time" : 9 ] ] ] Alamofire.request(.POST, "http://myserver.com", parameters: parameters, encoding: .JSON) .responseJSON { request, response, JSON, error in print(response) print(JSON) print(error) }
希望能解决您的问题。如果没有,请回复,我将相应地调整答案。