swift - 试图快速从 API 获取一些数据,我迷路了,我做错了什么?
问题描述
试图从 deepai.com 获取 AI 生成的文本
他们提供的示例如下所示:
curl \
-F 'text=YOUR_TEXT_HERE' \
-H 'api-key:quickstart-QUdJIGlzIGNvbWluZy4uLi4K' \
https://api.deepai.org/api/text-generator
我正在尝试快速复制相同的内容:
var request = URLRequest(url: url)
request.setValue("quickstart-QUdJIGlzIGNvbWluZy4uLi4K", forHTTPHeaderField: "api-key")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
let body = ["text": "Donald Trump"]
let bodyData = try? JSONSerialization.data(withJSONObject: body, options:[])
request.httpMethod = "POST"
request.httpBody = bodyData
URLSession.shared.dataTask(with: request){ (data, responce, error) in
print(responce!)
if let error = error {
print(error)
} else if let data = data {
print(data)
}
}.resume()
我得到状态码 400。不要深入了解我的选项展开等等。告诉我我做错了什么?为什么 curl 有效而我的 swift 代码无效?
更新
尝试了有关多部分表单数据的建议问题/答案的解决方案,但仍然无法正常工作。请看一下
var request = URLRequest(url: url)
let boundary = UUID().uuidString
request.setValue("quickstart-QUdJIGlzIGNvbWluZy4uLi4K", forHTTPHeaderField: "api-key")
request.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
let body = ["text": "Donald Trump"]
var data = Data()
for(key, value) in body{
// Add the reqtype field and its value to the raw http request data
data.append("\r\n--\(boundary)\r\n".data(using: .utf8)!)
data.append("Content-Disposition: form-data; name=\"\(key)\"\r\n\r\n".data(using: .utf8)!)
data.append("\(value)".data(using: .utf8)!)
}
data.append("\r\n--\(boundary)--\r\n".data(using: .utf8)!)
request.httpMethod = "POST"
//request.httpBody = data
URLSession.shared.uploadTask(with: request, from: data){ (data, responce, error) in
print(responce!)
if let error = error {
print(error)
} else if let data = data {
print(data)
}
}.resume()
不要为我的愚蠢而生气!)
解决方案
推荐阅读
- python - 如何使用 widget.place(x,y) 函数将小部件打包在一个框架中 - 当试图在几个框架之间切换时?(tkinter python)
- django-models - 如何从 Django REST 框架中的多对多关系中获取值的总和
- android - Live build 上传到 Play 商店时无法跟踪错误,否则工作正常
- python - 我在这条蟒蛇中缺少什么?这是一个简单的程序订购3个术语,最后一个订单部分不起作用
- javascript - React JS:如何创建包含 PDF 文档的可下载链接以供下载?
- kubernetes - K8s。Pod 和 ssh 连接的问题
- python - 立即在获取和返回响应上运行脚本
- javascript - 在选择中按编辑时如何从表中获取值?
- php - Microsoft Graph Rest API:“通知端点验证”如何工作?
- ios - Swift - 检查视频是否一直播放到最后