2.组装表单要求数据:因须要通报文件,以是通过MultipartEntityBuilder布局器组装表单实体要求数据。

2.1 设置mode为HttpMultipartMode.RFC6532(必须);

2.2 设置字符集为UTF-8(必须);

jsppost请求HttpClient应用指南POST要求 CSS

2.3 通过addBinaryBody追加文件;

2.4 通过addTextBody追加文本参数,若文本为中文则必须指定字符集为GBK或者UTF-8。

3.创建一个post要求:通过要求布局器RequestBuilder的post方法布局一个post要求,通过setEntity方法向post要求里放置要求参数,通过addHeader方法向post要求里追加要求头信息,要求头信息比如双方约定的token,通过build方法返回要求工具。

4.发起post要求并得到相应:通过要求客户真个execute方法实行要求并得到返回值要求相应。

5.获取相应结果:获取相应工具的实体HttpEntity,通过EntityUtils的toString方法将实体转成字符串,这里一样平常还要指定字符集,尤其是当实体里没有指定字符集时。

把稳:MultipartEntityBuilder必须指定mode为HttpMultipartMode.RFC6532,且必须设置字符集为UTF-8,否则若通报的文件名包含中文,则文件名乱码;对付普通的文本参数,中文指定UTF-8或者GBK吸收方均未创造乱码情形;吸收方须要将要求转为MultipartHttpServetRequest方可获取到文件,示例代码如下:

public ModelAndView enterTest(HttpServletRequest req, HttpServletResponse res, DataObject para) throws Exception {System.out.println(req.getContentType());MultipartHttpServletRequest mr = (MultipartHttpServletRequest) req;MultipartFile mf = mr.getFile("file2");System.out.println("getOriginalFilename:" + mf.getOriginalFilename());System.out.println("getName:" + mf.getName());......}

若觉得对您有用,可以转发并关注,您的关注是对我莫大的支持!