swift - 传递字典作为 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 调用吗?
解决方案
推荐阅读
- android - 如何使用 Dagger Hilt 和 Room 将数据库范围限定为用户?
- interpolation - Perlin 噪声分解
- sql-server - 加密存储过程时无法导出 SQL Azure 数据库
- javascript - 使用类实例作为属性的 mobx 存储时未定义的函数
- python - 如何在 Python 中找到图中最大的集团?
- laravel - “只能导入字符串、FileObjects 和 UploadedFileObjects”laravel spatie
- python - 捕获电影标题组
- php - 如何在 PHP Blockcypher 中签署“toSigner”
- c# - ASP NET Web 窗体 URL 重写太慢
- c# - 在 EF Core 中向用户提供默认值并显示