如何将空间作为空间发送,而不是在Alamofire多部分数据上传中发送%20



我正在使用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))
}
}

最新更新