[swift5]: support arrays in multipart/form-data (#13383)

* [swift5]: support arrays in multipart/form-data

* update samples
This commit is contained in:
Julian Kalinowski 2022-09-13 12:39:03 +02:00 committed by GitHub
parent 072740754b
commit 7ff47dc0bf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 726 additions and 692 deletions

View File

@ -103,23 +103,25 @@ private var managerStore = SynchronizedDictionary<String, Alamofire.Session>()
let upload = manager.upload(multipartFormData: { mpForm in let upload = manager.upload(multipartFormData: { mpForm in
for (k, v) in self.parameters! { for (k, v) in self.parameters! {
switch v { for v in (v as? Array ?? [v]) {
case let fileURL as URL: switch v {
if let mimeType = self.contentTypeForFormPart(fileURL: fileURL) { case let fileURL as URL:
mpForm.append(fileURL, withName: k, fileName: fileURL.lastPathComponent, mimeType: mimeType) if let mimeType = self.contentTypeForFormPart(fileURL: fileURL) {
} else { mpForm.append(fileURL, withName: k, fileName: fileURL.lastPathComponent, mimeType: mimeType)
mpForm.append(fileURL, withName: k) } else {
mpForm.append(fileURL, withName: k)
}
case let string as String:
mpForm.append(string.data(using: String.Encoding.utf8)!, withName: k)
case let number as NSNumber:
mpForm.append(number.stringValue.data(using: String.Encoding.utf8)!, withName: k)
case let data as Data:
mpForm.append(data, withName: k)
case let uuid as UUID:
mpForm.append(uuid.uuidString.data(using: String.Encoding.utf8)!, withName: k)
default:
fatalError("Unprocessable value \(v) with key \(k)")
} }
case let string as String:
mpForm.append(string.data(using: String.Encoding.utf8)!, withName: k)
case let number as NSNumber:
mpForm.append(number.stringValue.data(using: String.Encoding.utf8)!, withName: k)
case let data as Data:
mpForm.append(data, withName: k)
case let uuid as UUID:
mpForm.append(uuid.uuidString.data(using: String.Encoding.utf8)!, withName: k)
default:
fatalError("Unprocessable value \(v) with key \(k)")
} }
} }
}, to: URLString, method: xMethod, headers: nil) }, to: URLString, method: xMethod, headers: nil)

View File

@ -455,60 +455,62 @@ private class FormDataEncoding: ParameterEncoding {
urlRequest.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type") urlRequest.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
for (key, value) in parameters { for (key, value) in parameters {
switch value { for value in (value as? Array ?? [value]) {
case let fileURL as URL: switch value {
case let fileURL as URL:
urlRequest = try configureFileUploadRequest( urlRequest = try configureFileUploadRequest(
urlRequest: urlRequest, urlRequest: urlRequest,
boundary: boundary, boundary: boundary,
name: key, name: key,
fileURL: fileURL fileURL: fileURL
) )
case let string as String: case let string as String:
if let data = string.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let number as NSNumber:
if let data = number.stringValue.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let data as Data:
if let data = string.data(using: .utf8) {
urlRequest = configureDataUploadRequest( urlRequest = configureDataUploadRequest(
urlRequest: urlRequest, urlRequest: urlRequest,
boundary: boundary, boundary: boundary,
name: key, name: key,
data: data data: data
) )
case let uuid as UUID:
if let data = uuid.uuidString.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
default:
fatalError("Unprocessable value \(value) with key \(key)")
} }
case let number as NSNumber:
if let data = number.stringValue.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let data as Data:
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
case let uuid as UUID:
if let data = uuid.uuidString.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
default:
fatalError("Unprocessable value \(value) with key \(key)")
} }
} }

View File

@ -103,23 +103,25 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
let upload = manager.upload(multipartFormData: { mpForm in let upload = manager.upload(multipartFormData: { mpForm in
for (k, v) in self.parameters! { for (k, v) in self.parameters! {
switch v { for v in (v as? Array ?? [v]) {
case let fileURL as URL: switch v {
if let mimeType = self.contentTypeForFormPart(fileURL: fileURL) { case let fileURL as URL:
mpForm.append(fileURL, withName: k, fileName: fileURL.lastPathComponent, mimeType: mimeType) if let mimeType = self.contentTypeForFormPart(fileURL: fileURL) {
} else { mpForm.append(fileURL, withName: k, fileName: fileURL.lastPathComponent, mimeType: mimeType)
mpForm.append(fileURL, withName: k) } else {
mpForm.append(fileURL, withName: k)
}
case let string as String:
mpForm.append(string.data(using: String.Encoding.utf8)!, withName: k)
case let number as NSNumber:
mpForm.append(number.stringValue.data(using: String.Encoding.utf8)!, withName: k)
case let data as Data:
mpForm.append(data, withName: k)
case let uuid as UUID:
mpForm.append(uuid.uuidString.data(using: String.Encoding.utf8)!, withName: k)
default:
fatalError("Unprocessable value \(v) with key \(k)")
} }
case let string as String:
mpForm.append(string.data(using: String.Encoding.utf8)!, withName: k)
case let number as NSNumber:
mpForm.append(number.stringValue.data(using: String.Encoding.utf8)!, withName: k)
case let data as Data:
mpForm.append(data, withName: k)
case let uuid as UUID:
mpForm.append(uuid.uuidString.data(using: String.Encoding.utf8)!, withName: k)
default:
fatalError("Unprocessable value \(v) with key \(k)")
} }
} }
}, to: URLString, method: xMethod, headers: nil) }, to: URLString, method: xMethod, headers: nil)

View File

@ -455,60 +455,62 @@ private class FormDataEncoding: ParameterEncoding {
urlRequest.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type") urlRequest.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
for (key, value) in parameters { for (key, value) in parameters {
switch value { for value in (value as? Array ?? [value]) {
case let fileURL as URL: switch value {
case let fileURL as URL:
urlRequest = try configureFileUploadRequest( urlRequest = try configureFileUploadRequest(
urlRequest: urlRequest, urlRequest: urlRequest,
boundary: boundary, boundary: boundary,
name: key, name: key,
fileURL: fileURL fileURL: fileURL
) )
case let string as String: case let string as String:
if let data = string.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let number as NSNumber:
if let data = number.stringValue.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let data as Data:
if let data = string.data(using: .utf8) {
urlRequest = configureDataUploadRequest( urlRequest = configureDataUploadRequest(
urlRequest: urlRequest, urlRequest: urlRequest,
boundary: boundary, boundary: boundary,
name: key, name: key,
data: data data: data
) )
case let uuid as UUID:
if let data = uuid.uuidString.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
default:
fatalError("Unprocessable value \(value) with key \(key)")
} }
case let number as NSNumber:
if let data = number.stringValue.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let data as Data:
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
case let uuid as UUID:
if let data = uuid.uuidString.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
default:
fatalError("Unprocessable value \(value) with key \(key)")
} }
} }

View File

@ -455,60 +455,62 @@ private class FormDataEncoding: ParameterEncoding {
urlRequest.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type") urlRequest.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
for (key, value) in parameters { for (key, value) in parameters {
switch value { for value in (value as? Array ?? [value]) {
case let fileURL as URL: switch value {
case let fileURL as URL:
urlRequest = try configureFileUploadRequest( urlRequest = try configureFileUploadRequest(
urlRequest: urlRequest, urlRequest: urlRequest,
boundary: boundary, boundary: boundary,
name: key, name: key,
fileURL: fileURL fileURL: fileURL
) )
case let string as String: case let string as String:
if let data = string.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let number as NSNumber:
if let data = number.stringValue.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let data as Data:
if let data = string.data(using: .utf8) {
urlRequest = configureDataUploadRequest( urlRequest = configureDataUploadRequest(
urlRequest: urlRequest, urlRequest: urlRequest,
boundary: boundary, boundary: boundary,
name: key, name: key,
data: data data: data
) )
case let uuid as UUID:
if let data = uuid.uuidString.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
default:
fatalError("Unprocessable value \(value) with key \(key)")
} }
case let number as NSNumber:
if let data = number.stringValue.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let data as Data:
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
case let uuid as UUID:
if let data = uuid.uuidString.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
default:
fatalError("Unprocessable value \(value) with key \(key)")
} }
} }

View File

@ -455,60 +455,62 @@ private class FormDataEncoding: ParameterEncoding {
urlRequest.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type") urlRequest.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
for (key, value) in parameters { for (key, value) in parameters {
switch value { for value in (value as? Array ?? [value]) {
case let fileURL as URL: switch value {
case let fileURL as URL:
urlRequest = try configureFileUploadRequest( urlRequest = try configureFileUploadRequest(
urlRequest: urlRequest, urlRequest: urlRequest,
boundary: boundary, boundary: boundary,
name: key, name: key,
fileURL: fileURL fileURL: fileURL
) )
case let string as String: case let string as String:
if let data = string.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let number as NSNumber:
if let data = number.stringValue.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let data as Data:
if let data = string.data(using: .utf8) {
urlRequest = configureDataUploadRequest( urlRequest = configureDataUploadRequest(
urlRequest: urlRequest, urlRequest: urlRequest,
boundary: boundary, boundary: boundary,
name: key, name: key,
data: data data: data
) )
case let uuid as UUID:
if let data = uuid.uuidString.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
default:
fatalError("Unprocessable value \(value) with key \(key)")
} }
case let number as NSNumber:
if let data = number.stringValue.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let data as Data:
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
case let uuid as UUID:
if let data = uuid.uuidString.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
default:
fatalError("Unprocessable value \(value) with key \(key)")
} }
} }

View File

@ -455,60 +455,62 @@ private class FormDataEncoding: ParameterEncoding {
urlRequest.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type") urlRequest.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
for (key, value) in parameters { for (key, value) in parameters {
switch value { for value in (value as? Array ?? [value]) {
case let fileURL as URL: switch value {
case let fileURL as URL:
urlRequest = try configureFileUploadRequest( urlRequest = try configureFileUploadRequest(
urlRequest: urlRequest, urlRequest: urlRequest,
boundary: boundary, boundary: boundary,
name: key, name: key,
fileURL: fileURL fileURL: fileURL
) )
case let string as String: case let string as String:
if let data = string.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let number as NSNumber:
if let data = number.stringValue.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let data as Data:
if let data = string.data(using: .utf8) {
urlRequest = configureDataUploadRequest( urlRequest = configureDataUploadRequest(
urlRequest: urlRequest, urlRequest: urlRequest,
boundary: boundary, boundary: boundary,
name: key, name: key,
data: data data: data
) )
case let uuid as UUID:
if let data = uuid.uuidString.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
default:
fatalError("Unprocessable value \(value) with key \(key)")
} }
case let number as NSNumber:
if let data = number.stringValue.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let data as Data:
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
case let uuid as UUID:
if let data = uuid.uuidString.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
default:
fatalError("Unprocessable value \(value) with key \(key)")
} }
} }

View File

@ -455,60 +455,62 @@ private class FormDataEncoding: ParameterEncoding {
urlRequest.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type") urlRequest.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
for (key, value) in parameters { for (key, value) in parameters {
switch value { for value in (value as? Array ?? [value]) {
case let fileURL as URL: switch value {
case let fileURL as URL:
urlRequest = try configureFileUploadRequest( urlRequest = try configureFileUploadRequest(
urlRequest: urlRequest, urlRequest: urlRequest,
boundary: boundary, boundary: boundary,
name: key, name: key,
fileURL: fileURL fileURL: fileURL
) )
case let string as String: case let string as String:
if let data = string.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let number as NSNumber:
if let data = number.stringValue.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let data as Data:
if let data = string.data(using: .utf8) {
urlRequest = configureDataUploadRequest( urlRequest = configureDataUploadRequest(
urlRequest: urlRequest, urlRequest: urlRequest,
boundary: boundary, boundary: boundary,
name: key, name: key,
data: data data: data
) )
case let uuid as UUID:
if let data = uuid.uuidString.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
default:
fatalError("Unprocessable value \(value) with key \(key)")
} }
case let number as NSNumber:
if let data = number.stringValue.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let data as Data:
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
case let uuid as UUID:
if let data = uuid.uuidString.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
default:
fatalError("Unprocessable value \(value) with key \(key)")
} }
} }

View File

@ -455,60 +455,62 @@ private class FormDataEncoding: ParameterEncoding {
urlRequest.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type") urlRequest.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
for (key, value) in parameters { for (key, value) in parameters {
switch value { for value in (value as? Array ?? [value]) {
case let fileURL as URL: switch value {
case let fileURL as URL:
urlRequest = try configureFileUploadRequest( urlRequest = try configureFileUploadRequest(
urlRequest: urlRequest, urlRequest: urlRequest,
boundary: boundary, boundary: boundary,
name: key, name: key,
fileURL: fileURL fileURL: fileURL
) )
case let string as String: case let string as String:
if let data = string.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let number as NSNumber:
if let data = number.stringValue.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let data as Data:
if let data = string.data(using: .utf8) {
urlRequest = configureDataUploadRequest( urlRequest = configureDataUploadRequest(
urlRequest: urlRequest, urlRequest: urlRequest,
boundary: boundary, boundary: boundary,
name: key, name: key,
data: data data: data
) )
case let uuid as UUID:
if let data = uuid.uuidString.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
default:
fatalError("Unprocessable value \(value) with key \(key)")
} }
case let number as NSNumber:
if let data = number.stringValue.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let data as Data:
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
case let uuid as UUID:
if let data = uuid.uuidString.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
default:
fatalError("Unprocessable value \(value) with key \(key)")
} }
} }

View File

@ -455,60 +455,62 @@ private class FormDataEncoding: ParameterEncoding {
urlRequest.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type") urlRequest.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
for (key, value) in parameters { for (key, value) in parameters {
switch value { for value in (value as? Array ?? [value]) {
case let fileURL as URL: switch value {
case let fileURL as URL:
urlRequest = try configureFileUploadRequest( urlRequest = try configureFileUploadRequest(
urlRequest: urlRequest, urlRequest: urlRequest,
boundary: boundary, boundary: boundary,
name: key, name: key,
fileURL: fileURL fileURL: fileURL
) )
case let string as String: case let string as String:
if let data = string.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let number as NSNumber:
if let data = number.stringValue.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let data as Data:
if let data = string.data(using: .utf8) {
urlRequest = configureDataUploadRequest( urlRequest = configureDataUploadRequest(
urlRequest: urlRequest, urlRequest: urlRequest,
boundary: boundary, boundary: boundary,
name: key, name: key,
data: data data: data
) )
case let uuid as UUID:
if let data = uuid.uuidString.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
default:
fatalError("Unprocessable value \(value) with key \(key)")
} }
case let number as NSNumber:
if let data = number.stringValue.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let data as Data:
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
case let uuid as UUID:
if let data = uuid.uuidString.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
default:
fatalError("Unprocessable value \(value) with key \(key)")
} }
} }

View File

@ -455,60 +455,62 @@ private class FormDataEncoding: ParameterEncoding {
urlRequest.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type") urlRequest.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
for (key, value) in parameters { for (key, value) in parameters {
switch value { for value in (value as? Array ?? [value]) {
case let fileURL as URL: switch value {
case let fileURL as URL:
urlRequest = try configureFileUploadRequest( urlRequest = try configureFileUploadRequest(
urlRequest: urlRequest, urlRequest: urlRequest,
boundary: boundary, boundary: boundary,
name: key, name: key,
fileURL: fileURL fileURL: fileURL
) )
case let string as String: case let string as String:
if let data = string.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let number as NSNumber:
if let data = number.stringValue.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let data as Data:
if let data = string.data(using: .utf8) {
urlRequest = configureDataUploadRequest( urlRequest = configureDataUploadRequest(
urlRequest: urlRequest, urlRequest: urlRequest,
boundary: boundary, boundary: boundary,
name: key, name: key,
data: data data: data
) )
case let uuid as UUID:
if let data = uuid.uuidString.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
default:
fatalError("Unprocessable value \(value) with key \(key)")
} }
case let number as NSNumber:
if let data = number.stringValue.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let data as Data:
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
case let uuid as UUID:
if let data = uuid.uuidString.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
default:
fatalError("Unprocessable value \(value) with key \(key)")
} }
} }

View File

@ -455,60 +455,62 @@ private class FormDataEncoding: ParameterEncoding {
urlRequest.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type") urlRequest.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
for (key, value) in parameters { for (key, value) in parameters {
switch value { for value in (value as? Array ?? [value]) {
case let fileURL as URL: switch value {
case let fileURL as URL:
urlRequest = try configureFileUploadRequest( urlRequest = try configureFileUploadRequest(
urlRequest: urlRequest, urlRequest: urlRequest,
boundary: boundary, boundary: boundary,
name: key, name: key,
fileURL: fileURL fileURL: fileURL
) )
case let string as String: case let string as String:
if let data = string.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let number as NSNumber:
if let data = number.stringValue.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let data as Data:
if let data = string.data(using: .utf8) {
urlRequest = configureDataUploadRequest( urlRequest = configureDataUploadRequest(
urlRequest: urlRequest, urlRequest: urlRequest,
boundary: boundary, boundary: boundary,
name: key, name: key,
data: data data: data
) )
case let uuid as UUID:
if let data = uuid.uuidString.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
default:
fatalError("Unprocessable value \(value) with key \(key)")
} }
case let number as NSNumber:
if let data = number.stringValue.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let data as Data:
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
case let uuid as UUID:
if let data = uuid.uuidString.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
default:
fatalError("Unprocessable value \(value) with key \(key)")
} }
} }

View File

@ -455,60 +455,62 @@ private class FormDataEncoding: ParameterEncoding {
urlRequest.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type") urlRequest.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
for (key, value) in parameters { for (key, value) in parameters {
switch value { for value in (value as? Array ?? [value]) {
case let fileURL as URL: switch value {
case let fileURL as URL:
urlRequest = try configureFileUploadRequest( urlRequest = try configureFileUploadRequest(
urlRequest: urlRequest, urlRequest: urlRequest,
boundary: boundary, boundary: boundary,
name: key, name: key,
fileURL: fileURL fileURL: fileURL
) )
case let string as String: case let string as String:
if let data = string.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let number as NSNumber:
if let data = number.stringValue.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let data as Data:
if let data = string.data(using: .utf8) {
urlRequest = configureDataUploadRequest( urlRequest = configureDataUploadRequest(
urlRequest: urlRequest, urlRequest: urlRequest,
boundary: boundary, boundary: boundary,
name: key, name: key,
data: data data: data
) )
case let uuid as UUID:
if let data = uuid.uuidString.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
default:
fatalError("Unprocessable value \(value) with key \(key)")
} }
case let number as NSNumber:
if let data = number.stringValue.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let data as Data:
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
case let uuid as UUID:
if let data = uuid.uuidString.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
default:
fatalError("Unprocessable value \(value) with key \(key)")
} }
} }

View File

@ -455,60 +455,62 @@ private class FormDataEncoding: ParameterEncoding {
urlRequest.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type") urlRequest.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
for (key, value) in parameters { for (key, value) in parameters {
switch value { for value in (value as? Array ?? [value]) {
case let fileURL as URL: switch value {
case let fileURL as URL:
urlRequest = try configureFileUploadRequest( urlRequest = try configureFileUploadRequest(
urlRequest: urlRequest, urlRequest: urlRequest,
boundary: boundary, boundary: boundary,
name: key, name: key,
fileURL: fileURL fileURL: fileURL
) )
case let string as String: case let string as String:
if let data = string.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let number as NSNumber:
if let data = number.stringValue.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let data as Data:
if let data = string.data(using: .utf8) {
urlRequest = configureDataUploadRequest( urlRequest = configureDataUploadRequest(
urlRequest: urlRequest, urlRequest: urlRequest,
boundary: boundary, boundary: boundary,
name: key, name: key,
data: data data: data
) )
case let uuid as UUID:
if let data = uuid.uuidString.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
default:
fatalError("Unprocessable value \(value) with key \(key)")
} }
case let number as NSNumber:
if let data = number.stringValue.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let data as Data:
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
case let uuid as UUID:
if let data = uuid.uuidString.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
default:
fatalError("Unprocessable value \(value) with key \(key)")
} }
} }

View File

@ -455,60 +455,62 @@ private class FormDataEncoding: ParameterEncoding {
urlRequest.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type") urlRequest.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
for (key, value) in parameters { for (key, value) in parameters {
switch value { for value in (value as? Array ?? [value]) {
case let fileURL as URL: switch value {
case let fileURL as URL:
urlRequest = try configureFileUploadRequest( urlRequest = try configureFileUploadRequest(
urlRequest: urlRequest, urlRequest: urlRequest,
boundary: boundary, boundary: boundary,
name: key, name: key,
fileURL: fileURL fileURL: fileURL
) )
case let string as String: case let string as String:
if let data = string.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let number as NSNumber:
if let data = number.stringValue.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let data as Data:
if let data = string.data(using: .utf8) {
urlRequest = configureDataUploadRequest( urlRequest = configureDataUploadRequest(
urlRequest: urlRequest, urlRequest: urlRequest,
boundary: boundary, boundary: boundary,
name: key, name: key,
data: data data: data
) )
case let uuid as UUID:
if let data = uuid.uuidString.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
default:
fatalError("Unprocessable value \(value) with key \(key)")
} }
case let number as NSNumber:
if let data = number.stringValue.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let data as Data:
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
case let uuid as UUID:
if let data = uuid.uuidString.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
default:
fatalError("Unprocessable value \(value) with key \(key)")
} }
} }

View File

@ -455,60 +455,62 @@ private class FormDataEncoding: ParameterEncoding {
urlRequest.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type") urlRequest.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
for (key, value) in parameters { for (key, value) in parameters {
switch value { for value in (value as? Array ?? [value]) {
case let fileURL as URL: switch value {
case let fileURL as URL:
urlRequest = try configureFileUploadRequest( urlRequest = try configureFileUploadRequest(
urlRequest: urlRequest, urlRequest: urlRequest,
boundary: boundary, boundary: boundary,
name: key, name: key,
fileURL: fileURL fileURL: fileURL
) )
case let string as String: case let string as String:
if let data = string.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let number as NSNumber:
if let data = number.stringValue.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let data as Data:
if let data = string.data(using: .utf8) {
urlRequest = configureDataUploadRequest( urlRequest = configureDataUploadRequest(
urlRequest: urlRequest, urlRequest: urlRequest,
boundary: boundary, boundary: boundary,
name: key, name: key,
data: data data: data
) )
case let uuid as UUID:
if let data = uuid.uuidString.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
default:
fatalError("Unprocessable value \(value) with key \(key)")
} }
case let number as NSNumber:
if let data = number.stringValue.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let data as Data:
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
case let uuid as UUID:
if let data = uuid.uuidString.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
default:
fatalError("Unprocessable value \(value) with key \(key)")
} }
} }

View File

@ -455,60 +455,62 @@ private class FormDataEncoding: ParameterEncoding {
urlRequest.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type") urlRequest.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
for (key, value) in parameters { for (key, value) in parameters {
switch value { for value in (value as? Array ?? [value]) {
case let fileURL as URL: switch value {
case let fileURL as URL:
urlRequest = try configureFileUploadRequest( urlRequest = try configureFileUploadRequest(
urlRequest: urlRequest, urlRequest: urlRequest,
boundary: boundary, boundary: boundary,
name: key, name: key,
fileURL: fileURL fileURL: fileURL
) )
case let string as String: case let string as String:
if let data = string.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let number as NSNumber:
if let data = number.stringValue.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let data as Data:
if let data = string.data(using: .utf8) {
urlRequest = configureDataUploadRequest( urlRequest = configureDataUploadRequest(
urlRequest: urlRequest, urlRequest: urlRequest,
boundary: boundary, boundary: boundary,
name: key, name: key,
data: data data: data
) )
case let uuid as UUID:
if let data = uuid.uuidString.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
default:
fatalError("Unprocessable value \(value) with key \(key)")
} }
case let number as NSNumber:
if let data = number.stringValue.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
case let data as Data:
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
case let uuid as UUID:
if let data = uuid.uuidString.data(using: .utf8) {
urlRequest = configureDataUploadRequest(
urlRequest: urlRequest,
boundary: boundary,
name: key,
data: data
)
}
default:
fatalError("Unprocessable value \(value) with key \(key)")
} }
} }