我目前正在使用org.apache.http.entity.mime.MultipartEntityBuilder
。以下不起作用:
.addPart("key", new StringBody(jsonObject.toString()))
.addTextBody("key", jsonObject.toString())
.addTextBody("key", jsonObject.toString(), ContentType.APPLICATION_JSON)
此处jsonObject
为org.json.JSONObject
。
非嵌套字段和图像字段正确验证,但嵌套字段似乎没有填写(服务器返回“此字段是必需的。”)。
欢迎不使用MultipartEntityBuilder
的解决方案。
答案 0 :(得分:0)
我对Apache的MultipartEntityBuilder
但您总是可以将图像作为json对象中的Base64字段发送。在服务器中,您需要将其映射到byte[]
字段。
答案 1 :(得分:0)
多部分数据与嵌套的json不兼容。我决定扁平化服务器API中的嵌套字段。然后,仍然使用MultipartEntityBuilder
:
HttpEntity entity = MultipartEntityBuilder.create()
.addTextBody("inner_key1", jsonObject.get("inner_key1").toString())
.addTextBody("inner_key2", jsonObject.get("inner_key2").toString())
.addTextBody("inner_key3", jsonObject.get("inner_key3").toString())
.addBinaryBody("image", new File(imagePath))
.build();