package com.example.demo.util; import java.io.IOException; import java.nio.charset.Charset; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.ContentType; import org.apache.http.entity.mime.MultipartEntityBuilder; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; import org.springframework.web.multipart.MultipartFile; public class HttpClientUtil { public static String httpClientUploadFile(String url,MultipartFile file) { // String remote_url = url;// 第三方服务器请求地址 CloseableHttpClient httpClient = HttpClients.createDefault(); String result = "" ; try { String fileName = file.getOriginalFilename(); HttpPost httpPost = new HttpPost(url); MultipartEntityBuilder builder = MultipartEntityBuilder.create(); builder.addBinaryBody( "file" , file.getInputStream(), ContentType.MULTIPART_FORM_DATA, fileName); // 文件流 builder.addTextBody( "type" , "2" ); // 类似浏览器表单提交,对应input的name和value HttpEntity entity = builder.build(); httpPost.setEntity(entity); HttpResponse response = httpClient.execute(httpPost); // 执行提交 HttpEntity responseEntity = response.getEntity(); if (responseEntity != null ) { // 将响应内容转换为字符串 result = EntityUtils.toString(responseEntity, Charset.forName( "UTF-8" )); } } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } finally { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } return result; } } |