文件的上传下载:需要文件的url,bytes
基本类:
用到的类 | 简介 | 作用 |
---|---|---|
HttpClients | http客户端 | httpclient.execute(post); |
HttpServletResponse | 针对每一次请求,分别创建请求request对象、响应response对象。 | ApplicationUtils.getResponse(); |
HttpPost | 请求方式(装下一些请求的配置) | HttpPost(url) |
RequestConfig | 设置请求时间 | RequestConfig.custom().setConnectTimeout(5000).build(); |
MultipartEntityBuilder | 附件数据类型式 | addTextBody(“type”,mediaType.uploadType()) |
EntityUtils | 响应体的转化 | EntityUtils.toString(res.getEntity(), utf8) |
大概代码(这里只是一小部分)
上传:
// 通过url设置请求
HttpPost post = new HttpPost(url);
// 设置请求超时时间(还有)
RequestConfig config = RequestConfig.custom().setConnectTimeout(5000).build();
// 配置进请求
post.setConfig(config);
// 设置附件数据类型
MultipartEntityBuilder addTextBody= MultipartEntityBuilder.create();
// 设置兼容模式
addTextBody.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
// 设置请求的格式
addTextBody.setCharset(Charset.forName(utf8));
addTextBody(“type”,mediaType.uploadType())
HttpEntity entity = builder.build();
设置响应体
post .setEntity(entity);
// 创建客户端
CloseableHttpClient client = HttpClients.createDefault();
// 执行提交
CloseableHttpResponse res= client .execute(post );
// 接收放回状态
int state = res.getStatusLine().getStatusCode();
下载:
HttpServletResponse resp = ApplicationUtils.getResponse();
// 设置响应头 响应编码
resp.setHeader("Content-disposition","attachment; filename=" + new String(fileName.getBytes(utf8), "ISO8859-1"));
resp.setCharacterEncoding(utf8);
// 创建请求
HttpGet get = new HttpGet(url);
// 设置请求超时时间
RequestConfig config = RequestConfig.custom().setConnectTimeout(5000).build();
httpGet.setConfig(config );
// 创建http客户端
CloseableHttpClient client = HttpClients.createDefault();
// 提交执行
CloseableHttpResponse res= client .execute(get );
return EntityUtils.toByteArray(res.getEntity());