ios - Swift - 带和不带图像的多部分/表单数据 POST 请求(上传)
问题描述
我正在尝试使用以下代码上传没有图像的配置文件数据并收到 400 个错误请求。而且,当我上传带有文件图像的配置文件数据时,也会出现相同的错误。
某些格式不匹配请帮忙!!!
var body = NSMutableData()
body.append("Content-Disposition: form-data; name=\"profileData\"".data(using: String.Encoding.utf8)!)
body.append("\(inputStr)\r\n".data(using: String.Encoding.utf8, allowLossyConversion: true)!)
body.append("Content-Disposition: form-data; name=\"file\"".data(using: String.Encoding.utf8)!)
body.append("\("")\r\n".data(using: String.Encoding.utf8, allowLossyConversion: true)!)
request.httpBody = body as Data
解决方案
request.httpMethod = "POST"
request.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
let body = NSMutableData()
body.append("--\(boundary)\r\n".data(using: String.Encoding.utf8)!)
let strPhotoUrl = photourl
let mimetype = "image/jpeg"
let readPath = Utility.getPhotofolder().stringByAppendingPathComponent(pathComponent:strPhotoUrl) // pass the path of the image
let image = UIImage(named: strPhotoUrl)
if (image == nil)
{
print("image is nil")
return
}
let image_data = UIImagePNGRepresentation(image!)
if(image_data == nil)
{
return
}
body.append("Content-Disposition:form-data; name=\"attachedImage\"; filename=\"\(photourl)\"\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
推荐阅读
- tomcat - webapp的默认映射servlet导致我奇怪的错误
- django-rest-framework - json序列化序列化器实例
- sql - sql如何在不添加列的情况下按联合子查询排序?
- intellij-idea - Intellij IDEA 无法格式化文件类型 ftl
- c# - 域类和数据库脚手架类有什么区别?
- android - 无法在多个设备上读取 google fit 数据
- ios - 今天扩展“显示更多”按钮第一次不起作用
- arrays - 颠簸变换:如何将一些值转移到列表中的每个地图中
- sql - 提高 SQL 的运行时间 - 目前为 61 小时
- git - 可以gitignore变量吗?