gpt4 book ai didi

ios - 如何在 Swift 4 中通过 POST 请求发送图像?

转载 作者:行者123 更新时间:2023-11-28 15:04:07 25 4
gpt4 key购买 nike

func createPost(username: String, user_id: String, description: String, image: UIImage, completion: @escaping (Bool) -> ()) {
var request = URLRequest(url: URL(string: Globals.root+"/amazing/image/post/here")!)
request.httpMethod = "POST"
//request.httpBody = .data(using: .utf8)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode != 200 {
print("statusCode should be 200, but is \(httpStatus.statusCode)")
print("response = \(String(describing: response))")
}
if let data = data {
do {
let aaData = try JSONSerialization.jsonObject(with: data, options: [])
if let ppData = aaData as? [String:Any] {
let u = ppData["username"] as! Bool
if u == true {
completion(true)
}
}
} catch let error as NSError {
print(error.localizedDescription)
completion(false)
}
}
}
task.resume()
}

我一直在寻找一个有效的答案,但我没有找到任何与 Swift 4 相关的答案。我希望能够在不编码的情况下将图像发送到我的 RESTful API。怎么能这样做呢?提前致谢。 :)

最佳答案

首先,考虑到您要发送用户名以及图片等内容,它必须是多部分形式(或一些丑陋的 BASE64 编码 JSON 属性)。

通常来说,干净的方法是先通过二进制 body post 上传图像(因为图像是传输中唯一的东西并且速度也更快),获取 Id 并将其作为字段引用。

做不到这一点,就很难了,使用 Moya + AlamoFire 怎么样?

https://github.com/Moya/Moya/issues/598

图像是二进制对象,这不是有效的 HTTP,除非您通过多部分形式对其进行编码或将其包装为 JSON 安全的 Base-64(假设您使用的是 JSON)

关于ios - 如何在 Swift 4 中通过 POST 请求发送图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48676946/

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