如何在 Alamofire,swift 3 中将字典作为参数发送

Posted

技术标签:

【中文标题】如何在 Alamofire,swift 3 中将字典作为参数发送【英文标题】:how to send a dictionary as a parameter in Alamofire, swift 3 【发布时间】:2016-10-31 06:11:20 【问题描述】:

我想发送下面的参数

"serial_number":"type":"match", "value":"somevalue"

所以我就这样尝试

 let parameters : [String:AnyObject] = [
            "serial_number":[
                "type":"match",
                "value":serialNum
            ]
        ]

然后像这样'GET'

Alamofire.request(.GET, Constant.WebClient.Cool + "/creator/" + cid + "/wa?filling=", parameters: nil, headers: headers)
            .responseJSON  response in

                switch response.result 
                case.Success(let JSON):
                    print("get json is success")
                    if JSON["status"] != nil && JSON["status"] as! String == "fail"
                        print("some error occured")
                    
                    else
                        let resultArray = JSON as! NSArray
                        print("\(resultArray)")
                    
                    break
                case .Failure(let error):
                    print("request failed with error : \(error.localizedDescription)")

                

        

但对我不起作用。如何获得

"serial_number":"type":"match", "value":"someval"

到字典。希望您对此有所帮助。当我尝试打印字典时,如下所示

["serial_number": 
    type = match;
    value = "some val";
]

希望您对此有所帮助。

【问题讨论】:

【参考方案1】:

alamofire 请求使用默认编码,即URLEncoding.default,在这种情况下无法按预期工作,因此您必须将编码更改为JSONEncoding(options: [])

关注文档:https://github.com/Alamofire/Alamofire#json-encoding

【讨论】:

以上是关于如何在 Alamofire,swift 3 中将字典作为参数发送的主要内容,如果未能解决你的问题,请参考以下文章

在 Alamofire Swift 3 中将数组作为参数发送

如何在 Alamofire Swift iOS 中将 Origin 传递给 Header?

Swift 3 Alamofire JSON 响应

在 Swift 中将 Alamofire 结果解析为对象(使用:Alamofire、SwiftyJSON 和 ObjectMapper)

在swift 3中将字节数组转换为PDF

在 Swift 中将数组转换为 Alamofire 参数