2017-08-01 74 views
0

我要发布数据作为参数是这样的:Alamofire:发送参数

{ 
    "data": 
    [ 
     { 
      "nik" : "lalaal" 
     } 
    ] 
} 

我怎样写在斯威夫特3这些参数使用Alamofire

我想:

let parameter: Parameters = [ 
       "data":[[ 
        "nik" : self.nik, 
        "check_type" : "IN", 
        "tanggal" : "01-08-2017 18:22:00", 
        "long" : String(locationList[projectChoosen].long!), 
        "lat" : String(locationList[projectChoosen].lat!), 
        "id_loc" : locationList[projectChoosen].id_project, 
        "id_project" : nil, 
        "nama_project" : locationList[projectChoosen].nama_project, 
        "barcode" : "", 
        "foto": "", 
        "mime_type" : "image/jpeg" 

        ]] 
      ] 
+1

显示你试过代码 –

+0

试试这个:Alamofire.request( “URL”,方法:.POST,参数:参数,编码:JSONEncoding.default) – KKRocks

+0

https://stackoverflow.com/a/45437228/ 1242673 –

回答

2

可以使用下面的代码。

let dicRequest: NSDictionary = ["userid" : "test", "password" : "test123"] 

let postParams:NSDictionary = [ 
    "data": dicRequest 
] 
let requestURL: String = String(format: "%@/Login", serverURL) 
Alamofire.request(requestURL, method: .post, parameters: postParams as? [String : AnyObject], encoding: JSONEncoding.default, headers: [:]) 
    .responseJSON { response in switch response.result { 

    case .success(let JSON): 
     print("response :-----> ",response) 
    case .failure(let error): 
     print("Request failed with error: \(error)") 

     } 
} 
+0

不能:(谢谢你的帮助 –

+0

我已经找到答案[“data”:[dicRequest]] –

+0

好的 谢谢... – shahnilay86

1

您可以在此甲首先创建一个Dictionary对象

{ 
    "data": 
    [ 
     { 
      "nik" : "lalaal" 
     } 
    ] 
} 

那之后,你可以使用这个转换NSJSONSerlisation以JSON字符串 而不是使用后Almofire。

let array: [[String: String]] = [["nik": "lalaal"]] 
let data = try JSONSerialization.data(withJSONObject: array, options: JSONSerialization.WritingOptions.prettyPrinted) 
let string = String(data: data, encoding: String.Encoding.utf8) 
let postParam: [String: String] = ["data": string] 

let _ = Alamofire.request(apiType.url!, method: apiType.type!,parameters: postParam, encoding: JSONEncoding.prettyPrinted, headers: nil).validate(statusCode: 200..<500).responseJSON { (response) in 

} 
+0

can not bro :(无论如何感谢您的帮助 –

0

下面是使用Alamofire和张贴字典作为参数的示例请求:

let dataArray: [[String: String]] = [["nik": "lalaal"]] 
let param: [String: [Any]] = ["data": dataArray]  
Alamofire.request(url, method: .post, parameters: param, encoding: JSONEncoding.default, headers: nil).responseJSON { response in }