【发布时间】:2020-04-15 09:15:40
【问题描述】:
我有向正文添加值的代码:
let body = NSMutableData()
let mimetype = "image/jpg"
//define the data post parameter
body.append("--\(boundary)\r\n".data(using: String.Encoding.utf8)!)
body.append("Content-Disposition:form-data; name=\"eventId\"\r\n\r\n".data(using: String.Encoding.utf8)!)
body.append("\(eventId)\r\n".data(using: String.Encoding.utf8)!)
body.append("--\(boundary)\r\n".data(using: String.Encoding.utf8)!)
body.append("Content-Disposition:form-data; name=\"contactId\"\r\n\r\n".data(using: String.Encoding.utf8)!)
body.append("\(contactId)\r\n".data(using: String.Encoding.utf8)!)
body.append("--\(boundary)\r\n".data(using: String.Encoding.utf8)!)
body.append("Content-Disposition:form-data; name=\"type\"\r\n\r\n".data(using: String.Encoding.utf8)!)
body.append("\(type)\r\n".data(using: String.Encoding.utf8)!)
body.append("--\(boundary)\r\n".data(using: String.Encoding.utf8)!)
body.append("Content-Disposition:form-data; name=\"file\"; filename=\"\(fileName)\"\r\n".data(using: String.Encoding.utf8)!)
body.append("Content-Type: \(mimetype)\r\n\r\n".data(using: String.Encoding.utf8)!)
body.append(image_data!)
body.append("\r\n".data(using: String.Encoding.utf8)!)
body.append("--\(boundary)--\r\n".data(using: String.Encoding.utf8)!)
request.httpBody = body as Data
如何转换成字符串?我想得到边界,但做不到。
当我这样做时,它让我为零:let test = String(data: body as Data, encoding: .utf8)
【问题讨论】:
-
改用数据,
var body = Data() -
@JoakimDanielson 我做到了,还是一样。可能是因为我编码的图片很大?
-
这里的问题是图片数据不能转成字符串。你的目标是什么?
-
@LeoDabus 我的目标只是检索此数据中的边界字符串。我添加了一个安全固定,如果可能的话,我不想破坏我所做的所有代码。如果我能得到数据中的边界值,那应该会很有帮助。另一种情况,我必须重做我所做的一切
-
就像其他人所说的,您不能将图像数据转换为 utf8 字符串。如果它只是您想要的边界,那么您可以将数据转换为 ascii 字符串。只要边界只包含可以工作的 ascii 字符。但是,我觉得这不是一种可靠或安全的方法,所以我不推荐它。但我对这个请求有点困惑——你是通过字符串插值自己添加边界的,那么为什么你没有对它的引用呢?
标签: ios swift nsurlrequest nsmutabledata