首页 > 解决方案 > 传递字典作为 POST 调用的参数

问题描述

我花了两天时间试图完成这项工作......需要一些帮助。

我有一个 GET 调用,它引发了我需要用作 POST 调用的参数的响应。

响应如下所示:

{ 
  faces = (
          {
           bottom = 1788;
           top = 1403;
           left = 500;
           right = 300;
           },
           {
           bottom = 1788;
           top = 1403;
           left = 500;
           right = 300;
           }
        );
        status = 200;
}

并且 post 调用需要一个 cord 参数,它是一个 JSON 数组

“cord Array JSON 数组保存采用模糊滤镜的区域的坐标(见下文)”

这是 POST 调用

//MOGRIFY CALL
    func mogrify(uploadedUrl: String, cord: Any) {
        
        let mogrifyurl = URL(string: "https://api.pixlab.io/mogrify")!
        
        //let param: [Face] = result.faces
        let param: [String: Any] = ["img": uploadedUrl, "key": Constants.pixlabAPIkey, "cord": [cord]]
        
        var request = URLRequest(url: mogrifyurl)
        request.addValue("application/json", forHTTPHeaderField: "Content-Type")
        request.addValue("Bearer \(Constants.pixlabAPIkey)", forHTTPHeaderField: "Authorization")
        request.httpMethod = "POST"
        request.httpBody = try! JSONSerialization.data(withJSONObject: param, options: [])

我试图像字符串一样传递它,但没有用

 let dataTask = session.dataTask(with: request) { (data, response, error) in

       let jsonString = String(data: data!, encoding: .utf8)
       print(jsonString)

       mogrify(uploadedUrl: uploadedUrl, cord: faces)

由于数据不起作用...

有人知道如何从 JSON 响应中提取字典并将其作为参数传递给 POST 调用吗?

标签: swift

解决方案


推荐阅读