【问题标题】:Sending array in parameter for Alamofire在 Alamofire 的参数中发送数组
【发布时间】:2018-09-29 16:18:23
【问题描述】:

我需要为我的Alamofire 请求发送以下数据作为参数:

key: "metas"

value: [{"meta_id": 80, "quantity": 2, "add_quantity": true}]

我试过了:

 let parameters: [String: AnyObject] = ["metas" : [["meta_id" : meta_id,
                                                  "quantity" : quantity,
                                                  "add_quantity" : true]] as AnyObject]

并在我的路由器中处理 Alamofire 请求:

urlRequest = try URLEncoding.default.encode(urlRequest, with: parameters)

【问题讨论】:

    标签: swift alamofire


    【解决方案1】:

    您需要将您的数组转换为字符串,然后传递给您的字符串数组。 这里,param 是字符串数组,如

    param:[String:String] = [:]
    
    var arrayImages : [JSON] = []
    
    let strImageString = JSON(arrayImages).rawString(.utf8, options: .prettyPrinted)
    param["certification_image"] = strImageString
    

    这是你的要求

    Alamofire.request(url, method: .post, parameters: param, encoding: URLEncoding.default, headers: nil).responseSwiftyJSON(completionHandler:
                {
    
                    if $0.result.isSuccess
                    {
                        completion($0.result)
                    }
                    else if $0.result.isFailure
                    {
                        let statusCode = $0.response?.statusCode
                        print("StatusCode : \(statusCode)")
                        if(statusCode == 500)
                        {
    
                        }else if(statusCode != nil)
                        {
                            completion($0.result)
                        }
                        else
                        {
                            makeToast(message:  "Somethig_went_wrong_key")
                            completion($0.result)
                        }
                    }else
                    {
                        makeToast(message:  "No_internet_connection_key")
                        completion($0.result)
                    }
            })
    

    【讨论】: