gpt4 book ai didi

json - 如何使用 Alamofire 和 swift 4 为 Clarifai API 编写 POST 请求?

转载 作者:行者123 更新时间:2023-12-04 12:18:54 25 4
gpt4 key购买 nike

我对 Swift 中的网络比较陌生,尤其是 POST 请求。我已经阅读了 Clarifai API 和 Alamofire 的文档,但还没有完全弄清楚如何使用 Alamofire 编写工作请求。到目前为止,我已经找到了以下代码,它创建了一个符合 Clarifai API 的结构,它希望请求的结构如下:

curl -X POST \
-H "Authorization: Key YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d @https://api.clarifai.com/v2/models/aaa03c23b3724a16a56b629203edc62c/outputs << FILEIN
{
"inputs": [
{
"data": {
"image": {
"base64": "$(base64 /home/user/image.png)"
}
}
}
]
}
FILEIN

这是我发现的实现这一目标的 swift 代码:

结构 ImageObj: Codable {让 base64: 字符串

    struct DataObj: Codable {
let image: ImageObj
}

struct InputObj: Codable {
let data: DataObj
}

struct InputsContainerObj: Codable {
let inputs: [InputObj]
}

let imageObj = ImageObj(base64: "abc123")
let dataObj = DataObj(image: imageObj)
let inputObj = InputObj(data: dataObj)
let inputsContainerObj = InputsContainerObj(inputs: [inputObj])

let encoder = JSONEncoder()
do {
let jsonData = try encoder.encode(inputsContainerObj)
let jsonString = String(data: jsonData, encoding: .utf8)!

print(jsonString) //{"inputs":[{"data":{"image":{"base64":"abc123"}}}]}
} catch _ as NSError {

}

现在我不知道在这之后我应该做什么。我尝试使用 POST 编写 Alamofire 请求,但卡在了参数上?和编码器?对于参数,我尝试了类似的方法:

let parameters: Parameters = [
"Authorization: Key":"xxxxxxxxxxxxxxxxxxxxxxxx",
"Content-Type":"application/json"]

但是不知道对不对。如果有人可以在这里帮助我,我将不胜感激!祝大家有个愉快的一天!

最佳答案

看起来您已经从对象和 header (您称它们为“参数”)构建了 jsonString。您应该能够通过以下方式发送:

let headers: [String: AnyObject] = [
"Authorization: Key":"xxxxxxxxxxxxxxxxxxxxxxxx",
"Content-Type":"application/json"
]

Alamofire.request(.POST, "https://api.clarifai.com/v2/inputs", parameters: jsonString, headers: headers, encoding: .JSON)
.responseJSON { request, response, JSON, error in
print(response)
print(JSON)
print(error)
}

我已将它们重新命名为标题,以使其在上面更加清晰。请注意,我已经屏蔽了授权 key (在答案和原始问题中)——通常您不想与公众分享它。

关于json - 如何使用 Alamofire 和 swift 4 为 Clarifai API 编写 POST 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50628183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com