如何在Swift中使用Alamofire将参数作为主体发送到PUT方法

如何在Swift中使用Alamofire将参数作为主体发送到PUT方法,swift,alamofire,put,Swift,Alamofire,Put,我想把JSON参数发送到PUT方法的主体中,我该怎么做呢 请在下面找到示例JSON func getKOLConnections(emials : [String],phoneNumbers : [String],address : [String],completionHandler: @escaping (Data) -> Void) -> Void { let url = URl let parameters :[String: Any] = ["emails": em

我想把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)
        }
 }
 }

希望这将帮助您:

    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]

屏幕截图显示需要传递的参数有:

  • 电子邮件
  • 电话号码
  • 地址
其中,
emails
也是一个字典,但是,您正在将
emials:[String]
传递到
getKOLConnections
。您可以使用以下签名对
getKOLConnections
进行修复:

func getKOLConnections(电子邮件:[String:Any],电话号码:[String],地址:[String],completionHandler:@escaping(Data)->Void)->Void

我已将
电子邮件:[String]
更改为
电子邮件:[String:Any]

电子邮件:[String:Any]
将具有以下键:

  • 电子邮件
  • last\u updated\u dev
  • 是主要的
  • 上次更新者

我也是这样做的,但它给了我400个错误,你能给我一些代码或检查我的代码吗?@Asmita确保你的api工作正常,因为400是错误的请求错误。在《邮递员》中,它工作正常,可能是我做错了什么@iVarun@Asmitaemial、phone、addr都在
[String]
中,因此它将是
字符串数组。你和我一样通过吗postman@Asmita
电子邮件
是字典的数组,您只发送数组。试试这一个