不能用Volley发送多部分/表格数据
答
对我有用的解决方案是删除从头设置Content-Type的行!
答
邮差自动生成发送请求时被添加到所述主体PARAMS一些随机边界的文本。你错过了你的代码。这里是你将如何做到这一点:
使用随机边界服务器将用于分割PARAMS
val BOUNDARY = "AS24adije32MDJHEM9oMaGnKUXtfHq"
val MULTIPART_FORMDATA = "multipart/form-data;boundary=" + BOUNDARY
getBodyContentType功能应该返回MULTIPART_FORMDATA
override fun getBodyContentType(): String {
return MULTIPART_FORMDATA
}
在getBody()函数,将边界添加到像这样的参数:
override fun getBody(): ByteArray {
val params = HashMap<String, String>()
params.put("profile_id", "1")
params.put("place_name", "La la land")
params.put("place_identifier", "10239jodmda")
val map: List<String> = params.map {
(key, value) -> "--$BOUNDARY\nContent-Disposition: form-data; name=\"$key\"\n\n$value\n"
}
val endResult = "${map.joinToString("")}\n--$BOUNDARY--\n"
return endResult.toByteArray()
}
Sinc Ë您已经设置上getBodyContentType()的内容类型,你可能不需要在getHeaders)以下行(:
headers.put("Content-Type", "multipart/form-data")
这SO回答显示了如何做同样的事情在Java中:https://*.com/a/38238994/3189164
解决方案是否适合您? – spuente