【问题标题】:How to send parameter as body to PUT method using Alamofire in Swift如何在 Swift 中使用 Alamofire 将参数作为正文发送到 PUT 方法
【发布时间】:2023-03-11 06:25:02
【问题描述】:

我想把body中的JSON参数传给PUT方法,怎么办?

请在下面找到示例 JSON。

func getKOLConnections(emials : [String],phoneNumbers : [String],address : [String],completionHandler: @escaping (Data) -> Void) -> Void {

let url = URl


let parameters :[String: Any]  = ["emails": emials,
                              "phone_numbers" : phoneNumbers,
                              "addresses" : address]

let header : HTTPHeaders =   ["Authorization": "Bearer \("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE1MzQzOTY0MzYsInNlc3Npb25fa2V5IjoiYmZhYjZkZTYtNzlhMy00NDIxLTg2M2YtMTY0MGJlOTQ3NmIzIiwiZXhwIjoxNTM0NDgyODM2fQ.LGclnO9vXxiywoS8TURzcm39pyhNnpeIZ4fzOTvS-jc")",
    "Content-Type": "application/json"] 


 requestdata =  Alamofire.request(url, method: .put, parameters: parameters, encoding: URLEncoding.httpBody, headers: header)
    .validate()
    .responseJSON { (response) in
        switch response.result{
        case .success:
            print(response.data!)

            completionHandler(response.data!)
        case .failure(let error):
            print(error)
        }
 }
 }

【问题讨论】:

标签: swift alamofire put


【解决方案1】:

希望对您有所帮助:

    Alamofire.request(URL(string: "url")!, method: .put, parameters: parameters, encoding: URLEncoding.httpBody, headers: nil).responseJSON { (response) in

        // Handle your response
    }

试试下面的参数:

 let parameters :[String: Any]  = ["emails": [["email" : "", "last_updated_dev" : nil, "is_primary" : nil, "last_updated_by" : nil]],
                                          "phone_numbers" : phoneNumbers,
                                          "addresses" : address]

【讨论】:

  • 我做了同样的方法,但它给了我 400 错误,你能给我一些代码或检查我的代码吗?
  • @Asmita 确保您的 api 工作正常,因为 400 是 Bad Request 错误。
  • 在邮递员中它工作正常,可能是我做错了什么。 @iVarun
  • @Asmita emials,phone,addrs 在[String],所以它将是String array。你和邮递员一样吗
  • @Asmita emails 是字典数组,您只发送数组。
【解决方案2】:

截图显示需要传递的参数是:

  • emails
  • phone_numbers
  • addresses

其中emails 也是字典,但是,您将emials : [String] 传递给getKOLConnections。您可以使用getKOLConnections 的以下签名来修复它:

func getKOLConnections(emails : [String: Any],phoneNumbers : [String],address : [String],completionHandler: @escaping (Data) -> Void) -> Void

我已将emails: [String] 更改为emails: [String: Any]

emails: [String:Any] 将具有以下键:

  • email
  • last_updated_dev
  • is_primary
  • last_updated_by

【讨论】:

    最近更新 更多