maven坐标
<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.13</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpmime</artifactId> <version>4.5.13</version> </dependency>
代码示例
1 @Test 2 public void test09() throws IOException { 3 String requestUrl = "xxxxx"; 4 CloseableHttpClient httpClient = HttpClients.createDefault(); 5 HttpPost httpPost = new HttpPost(requestUrl); 6 Person person = new Person("强强", "19"); 7 StringBody stringBody = new StringBody(JSONObject.toJSONString(person), ContentType.APPLICATION_JSON); 8 9 MultipartEntityBuilder builder = MultipartEntityBuilder.create(); 10 builder.setCharset(Consts.UTF_8); // 设置编码 11 builder.setContentType(ContentType.create("multipart/form-data", Consts.UTF_8)); // 传递文件 12 builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); // 设置浏览器的模式(否则文件名乱码) 13 14 // 对于普通的表单字段如果含有中文的话,不能通过addTextBody,否则乱码s 15 builder.addBinaryBody("files", 16 new FileInputStream(new File("强强.txt")), 17 ContentType.MULTIPART_FORM_DATA, 18 "强强.txt"); 19 builder.addPart("person", stringBody); 20 HttpEntity build = builder.build(); 21 httpPost.setEntity(build); 22 CloseableHttpResponse response = httpClient.execute(httpPost); 23 HttpEntity entity = response.getEntity(); 24 if (HttpStatus.SC_OK == response.getStatusLine().getStatusCode()) { 25 System.out.println("请求成功!"); 26 for (Header header : response.getAllHeaders()) { 27 System.out.println(header.getName() + " " + header.getValue()); 28 29 } 30 } 31 // 确保流关闭 32 EntityUtils.consume(entity); 33 response.close(); 34 httpClient.close(); 35 }