java 发送上传文件的 http put 请求

1 篇文章 0 订阅
public static CloseableHttpResponse putFilesWithHeader(String url,JSONObject requestJson,Map<String, String> header ,File... files) {
    CloseableHttpResponse execute = null;

    HttpPut httpPut = new HttpPut(url);
    String responseStr = null;
    if (header != null) {
        for (Map.Entry<String, String> entry : header.entrySet()) {
            httpPut.setHeader(entry.getKey(),entry.getValue());
        }
    }
    MultipartEntityBuilder multipartEntityBuilder = MultipartEntityBuilder.create().setCharset(Charset.forName("UTF-8"));
    for (File file : files) {
        multipartEntityBuilder.addBinaryBody("facePic", file);
    }
    Set<Map.Entry<String, Object>> entries = requestJson.entrySet();
    for (Map.Entry<String, Object> requestParam : entries ) {
        multipartEntityBuilder.addTextBody(requestParam.getKey(),(String) requestParam.getValue());
    }
    HttpEntity entiy = multipartEntityBuilder.build();
    httpPut.setEntity(entiy);
    CloseableHttpClient  closeableHttpClient = HttpClients.createDefault();
    try {
          execute = closeableHttpClient.execute(httpPut);
    } catch (Exception e) {
        e.printStackTrace();
    }
       return  execute;


}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Java中使用HttpClient发送POST请求上传文件流的示例代码: ```java import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.ContentType; import org.apache.http.entity.mime.MultipartEntityBuilder; import org.apache.http.entity.mime.content.FileBody; import org.apache.http.entity.mime.content.StringBody; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.util.EntityUtils; import java.io.File; import java.io.IOException; import java.nio.charset.Charset; import java.util.Map; public class HttpUtil { public static String postFile(String url, Map<String, String> params, Map<String, File> files) throws IOException { HttpClient httpClient = HttpClientBuilder.create().build(); HttpPost httpPost = new HttpPost(url); MultipartEntityBuilder builder = MultipartEntityBuilder.create(); // 设置请求参数 for (Map.Entry<String, String> entry : params.entrySet()) { builder.addPart(entry.getKey(), new StringBody(entry.getValue(), ContentType.create("text/plain", Charset.forName("UTF-8")))); } // 设置文件流 for (Map.Entry<String, File> entry : files.entrySet()) { builder.addPart(entry.getKey(), new FileBody(entry.getValue())); } HttpEntity entity = builder.build(); httpPost.setEntity(entity); HttpResponse response = httpClient.execute(httpPost); HttpEntity responseEntity = response.getEntity(); String result = EntityUtils.toString(responseEntity, Charset.forName("UTF-8")); EntityUtils.consume(responseEntity); return result; } } ``` 使用示例: ```java Map<String, String> params = new HashMap<>(); params.put("param1", "张三"); Map<String, File> files = new HashMap<>(); files.put("file1", new File("path/to/file1")); files.put("file2", new File("path/to/file2")); String result = HttpUtil.postFile("http://example.com/upload", params, files); System.out.println(result); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值