Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Android中,如何在一个HTTP POST请求中同时发送嵌套的json数据和图像?_Java_Android_Json_Http - Fatal编程技术网

Java 在Android中,如何在一个HTTP POST请求中同时发送嵌套的json数据和图像?

Java 在Android中,如何在一个HTTP POST请求中同时发送嵌套的json数据和图像?,java,android,json,http,Java,Android,Json,Http,我目前正在使用org.apache.http.entity.mime.MultipartEntityBuilder。以下各项不起作用: .addPart(“键”,新的StringBody(jsonObject.toString()) .addTextBody(“key”,jsonObject.toString()) .addTextBody(“key”,jsonObject.toString(),ContentType.APPLICATION\u JSON) 这里,jsonObject是一个or

我目前正在使用
org.apache.http.entity.mime.MultipartEntityBuilder
。以下各项不起作用:

.addPart(“键”,新的StringBody(jsonObject.toString())

.addTextBody(“key”,jsonObject.toString())

.addTextBody(“key”,jsonObject.toString(),ContentType.APPLICATION\u JSON)

这里,
jsonObject
是一个
org.json.jsonObject

非嵌套字段和图像字段验证正确,但嵌套字段似乎没有填写(服务器返回“thisfield is required”)


不使用
MultipartEntityBuilder
的解决方案也受欢迎。

我对Apache的
MultipartEntityBuilder
一无所知


但您可以始终将图像作为json对象中的字段发送。在服务器中,您需要将其映射到
字节[]
字段。

多部分数据与嵌套的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();

这是一个很好的建议,但我正试图避免它,因为开销、潜在的内存不足错误以及服务器端的额外工作。