httpclient4.3.X post请求上传,将文件封装到请求体中(不以form表单形式)
来源:互联网 发布:淘宝不能跟客服聊天 编辑:程序博客网 时间:2024/06/04 01:14
场景:后台不是以form表单形式接收上传的文件,而是从请求体中直接获取(像这样req.getInputStream())
http请求代码如下:
public static void main(String[] args) throws Exception {CloseableHttpClient httpClient = null;HttpResponse response = null;HttpPost httpPost = null;try {httpClient = HttpClientBuilder.create().build();//设置请求参数RequestConfig config = RequestConfig.custom().setConnectTimeout(200000).setSocketTimeout(200000).build();//请求地址String url = "http://localhost:8080/xxx-core/upload?bucket=route&key=test&index=1";httpPost = new HttpPost(url);httpPost.setConfig(config);//<关键步骤>将文件封装在请求体中BasicHttpEntity basicHttpEntity = new BasicHttpEntity();basicHttpEntity.setContentLength(92944);basicHttpEntity.setContent(new ByteArrayInputStream(FileUtils.readFileToByteArray(new File("D:/tmp/hello.jpg"))));httpPost.setEntity(basicHttpEntity);//执行请求response = httpClient.execute(httpPost);//响应内容System.out.println(EntityUtils.toString(response.getEntity()));} catch (Exception e) {e.printStackTrace();} finally {if (httpPost != null) {httpPost.releaseConnection();}}}
后台获取代码如下:
<pre name="code" class="java">@RequestMapping(value = "/upload/{bucket}", method = RequestMethod.POST) public String durativeUpload( @PathVariable(value = "bucket") String bucket, @RequestParam(value = "key") String key, @RequestParam(value = "index") Integer index, @RequestParam(value = "md5", required = false) String md5, @RequestParam(value = "token") String token, HttpServletRequest req, HttpServletResponse resp) throws Exception{ //请求体中获取文件req.getInputStream(); //…………}
0 0
- httpclient4.3.X post请求上传,将文件封装到请求体中(不以form表单形式)
- php 通过curl将上传的form表单整个post到处理业务的请求中
- 将并发请求以功能的形式挂靠到FORM菜单中
- 使用HttpClient4实现文件上传请求的发送,服务器端以MultipartFile形式接收(附依赖jar包地址)
- Vue-resource中post请求将data数据以request payload转换为form data的形式
- vue axios POST请求中参数以form data和request payload形式的原因
- http以post方式上传一个文件,构造其请求头和消息报文 application/x-www-form-urlencoded multipart/form-data
- httpclient4.3.x模拟post及get请求
- HTTP POST请求并将请求参数设置成请求体添加到请求中
- HttpClient4.5 post请求xml到服务器
- AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式
- AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式
- AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式
- AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式
- AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式
- AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式
- AJAX POST请求中参数以form data和request payload形式在php中的获取方式
- AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式
- stax
- Oracle insert大量数据经验之谈
- Android 实现 拍照测距 的APP
- Linux进程之alarm()信号传送闹钟函数
- 题目1027:欧拉回路 学习
- httpclient4.3.X post请求上传,将文件封装到请求体中(不以form表单形式)
- 【cocos2d-js官方文档】二十四、如何在android平台上使用js直接调用Java方法
- Drag drop does not work on windows 7 and later
- android studio下Maven管理android的库
- 移植u-boot到mini2440--从norflash启动
- java点滴:String字符串的替换函数:replace与replaceAll的区别
- 基于cookie实现ztree树刷新后,展开状态不变
- Powerdesigner中如何生成测试数据
- 内部类与匿名内部类的区别