2 sinat 16921689 sinat_16921689 于 2016.05.11 10:10 提问

JAVA如何利用JSON能上传文件?

现在需要通过HTTP的POST请求实现文件发送的功能,其中发送的格式是通过JSON格式的,就是JSON里面携带的有其他参数,还有文件名和文件体,这个怎么实现?

3个回答

CSDNXIAOD
CSDNXIAOD   2016.05.11 10:22

java上传文件到oracle数据库
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

linshuhe1
linshuhe1   2016.05.11 11:26

String dataString = "{name:"filenanme",content:"contentStr"}";
JSONObject json = new JSONObject(dataString);

sinat_16921689
sinat_16921689 这个content里面的内容如何处理,因为涉及到的文件除了文本形式还有其他的,可能有word格式的,.jar格式,.zip格式等等
一年多之前 回复
sxwws
sxwws   2016.05.11 15:00

提供给你我写的片段代码。

import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

// 执行远程call调用
Client client = ClientBuilder.newClient();
WebTarget call_target = client.target(callUrl);
Response response = call_target.request(MediaType.APPLICATION_JSON).post(
Entity.entity(excuteCallRequestJson, MediaType.APPLICATION_JSON));
// 获取响应Code
int responseCode = response.getStatus();
// 如果响应成功,则获取响应Json内容,并且将执行结果置成true
if (responseCode == 200) {
String excuteRespJson = response.readEntity(String.class);
context.setExcuteRespJson(excuteRespJson);
System.out.println("excute responseJson=====" + context.getExcuteRespJson());
}

sinat_16921689
sinat_16921689 我不知道文件内容如何处理,因为这个文件除了文本文件还有其他格式的,都用String接受不对吧?可能有word格式的,.jar格式,.zip格式
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!