如何将Object参数数组快速传递给Alamofire

Posted

技术标签:

【中文标题】如何将Object参数数组快速传递给Alamofire【英文标题】:How to pass array of Object parameter to Alamofire swift 【发布时间】:2020-06-16 10:02:58 【问题描述】:

我是 Swift 的新手,任何人都可以帮助我。

我想将对象数组传递给 Alamofire,但我不知道该怎么做

这里是需要的参数:


    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI1ZWU4OGZiNzhiYTBkMjMyZDFmYWZkMzgiLCJpYXQiOjE1OTIyOTk2Njh9.AVuxiTZy10fV2ZMZcT-oHXSg6PdK3tfE",
    "zipCodes": [
        
            "zip_code": "55001",
            "city": "Afton",
            "state": "MN",
            "county": "Washington"
        
    ]

我就是这么做的

 let parameters : [String : String] = ["token" : retrivedToken, "zipCodes" : [
            "zip_code": "55001",
            "city": "Afton",
            "state": "MN",
            "county": "Washington"
            ]
        ]

【问题讨论】:

【参考方案1】:
let bodyParams: [String : Any] = [
            "token": "\(retrivedToken)",
            "zipCodes":[
                "county": "Washington",
                "state": "MN",
                "zip_code": "55001",
                "city": "Afton"
            ]
        ]
    

让 urlString = "abc.com"

Alamofire.request(urlString, method: .post, parameters: bodyParams ,encoding: JSONEncoding.default, headers: nil).responseJSON   
response in
  switch response.result 
                case .success:
                    print(response)
                    break
                case .failure(let error):

                 print(error)
      

【讨论】:

这个答案的目的是什么?这和我之前写的一样。【参考方案2】:

只需将您的参数用于您的请求。

func sendRequestRequest() 
// JSON Body
let parameters: [String : Any] = [
    "token": retrivedToken,
    "zipCodes": [
        "county": "Washington",
        "state": "MN",
        "zip_code": "55001",
        "city": "Afton"
    ]
]

// Fetch Request
Alamofire.request("your API url", method: .post, parameters: parameters, encoding: JSONEncoding.default)
    .validate(statusCode: 200..<300)
    .responseJSON  response in
        if (response.result.error == nil) 
            print("HTTP Response Body: \(response.data)")
        
        else 
            print("HTTP Request failed: \(response.result.error)")
        
    

别忘了,如果您使用 Alamofire v5,请使用 AF.request 而不是 Alamofire.request

【讨论】:

以上是关于如何将Object参数数组快速传递给Alamofire的主要内容,如果未能解决你的问题,请参考以下文章

将数组传递给接受参数 object[] 或 IEnumerable<T> 的函数

如何通过 FromQuery 参数将“System.Object”类型传递给控制器

将数组传递给 TypeScript 中的可变参数函数

如何快速将数组传递给 NSNotification

如何给SQLSERVER存储过程传递数组参数

如何将多个参数作为数组传递给 ruby​​ 方法?