使用Alamofire上传图片到阿里OSS时会发现有的时候上传失败,原因是因为Alamofire拼接form-data的时候顺序会出错,所以需要自己使用URLRequest自己进行拼接就可以。
private let MultipartFormCRLF = "\r\n"
private let MutlipartFormCRLFData = MultipartFormCRLF.data(using: String.Encoding.utf8)!
class MutipartDataBuilder {
public let boundary:String
var fields:[Data] = []
public init(){
self.boundary = NSUUID().uuidString
}
public func build()->Data?{
let data = NSMutableData()
for field in self.fields {
data.append(self.toData("--\(self.boundary)"))
data.append(MutlipartFormCRLFData)
data.append(field)
}
data.append(self.toData("--\(self.boundary)--"))
data.append(MutlipartFormCRLFData)
return data.copy() as? Data
}
public func appendFormData(_ key:String,value:String){
let contentDisposition = "Content-Disposition: form-da