我在服务器端获得的请求缺少每个多部分的content-length
。
我尝试更改标题,但仍然无法显示。
我使用 Alamofire / multipart form-data 成功地将图像文件和一些数据从设备/模拟器发送到服务器。
var parameters = […]
let url = try! URLRequest(url: “URL”, method: .post, headers: ["Content-type": "multipart/form-data"])
Alamofire.upload(multipartFormData: { (multipartFormData) in
for (key, value) in parameters {
multipartFormData.append((value.data(using: String.Encoding.utf8)!), withName:key)
}
multipartFormData.append(UIImageJPEGRepresentation(image!, 0.5)!, withName: “Image”, mimeType: "image/jpeg")
}, to: "\(url)" , encodingCompletion: {(encodingResult) in
switch encodingResult {
case .success(let upload, _, _):
//print(result)
upload.uploadProgress(closure: { (Progress) in
self.progressView.progress = Float(Progress.fractionCompleted)
print("Upload Progress: \(Progress.fractionCompleted)")
})
print("REQUEST = \(request)")
print(encodingResult)
upload.responseJSON { response in
//self.delegate?.showSuccessAlert()
print( response.request) // original URL request
print(response.response) // URL response
print(response.data) // server data
print(response.result) // result of response serialisation
// self.showSuccesAlert()
//self.removeImage("frame", fileExtension: "txt")
if let JSON = response.result.value {
print("JSON: \(JSON)")
}
}
case .failure(let encodingError):
//self.delegate?.showFailAlert()
print(encodingError)
}
})
更新:即使在保留headers: nil
之后,它也不会显示出来。
收到alamofire: -
--alamofire.boundary.cc9684e085522290
Content-Disposition: form-data; xyz="abc"
123456
--alamofire.boundary.cc9684e085522290
如何获取每个多部分数据的内容长度?
答案 0 :(得分:2)
尝试将标题更改为
headers: ["Content-Length"]