我正在使用Alamofire发送一个图像文件的多部分上传。这是我用来添加参数的代码。问题是,它将空间发送为%20(A k作为A%20K(。我想照原样发送(A K(。这是添加参数的代码
URLEncoding.default.queryParameters(params).forEach { (key, value) in
if let data = value.data(using: .utf8) {
multipart.append(data, withName: key)
print(String(data: data, encoding: String.Encoding.utf8) as Any)
}
您使用URLEncoding
来查询参数,这些参数将始终是URL编码的,正如您所期望的那样。
在将字符串转换为等数据之前,请尝试从字符串中删除百分比编码
if let data = value.removingPercentEncoding?.data(using: .utf8) {
// do your stuff here
}
假设您的params
对象是[String: String]
值的数组,您可以简单地执行以下
params.forEach { (key, value) in
if let data = value.data(using: .utf8) {
multipart.append(data, withName: key)
print(String(data: data, encoding: .utf8))
}
}