http post multipart/mixed的文件.

依赖.

        <dependency>
              <groupId>org.apache.httpcomponents</groupId>
              <artifactId>httpmime</artifactId>
<!--               <version>4.5.3</version> -->
        </dependency>
import java.io.File;
import java.io.IOException;

import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
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.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;


public class TestMultiPartUpload {

    /**
     * TODO 方法说明。
     *
     * @param args
     * @throws IOException
     */
    public static void main(String[] args) throws IOException {


        CloseableHttpClient httpClient = HttpClientBuilder.create().build();
        try {

        HttpPost post = new HttpPost("http://127.0.0.1:8080/mypath/test");

        
        post.setHeader("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;)");
        post.setHeader("charset", "utf-8");
        String token = "4dc6098e-d584-4883-a4e7-45adc5xxxxxx";
        post.setHeader("Authorization", "Bearer " + token);
        post.setHeader("Accept", "application/json");
        // post.setHeader("Content-Type", "multipart/mixed;boundary=----QWERTYUIO");
        FileBody img1 = new FileBody(new File("D:/img/1.jpg"), ContentType.create("image/jpeg"), "1.jpg");
        FileBody img2 = new FileBody(new File("D:/img/4.jpg"), ContentType.create("image/jpeg"), "4.jpg");
        
        
        StringBody meta = new StringBody("{ "key1":"v1"; "key2":"v2"   }", ContentType.APPLICATION_JSON);

        HttpEntity reqEntity = MultipartEntityBuilder.create()
                .addPart("files", img1)
                .addPart("files", img2)
                //.addPart("story", meta).setBoundary("----QWERTYUIO")
.addPart("story", meta) .build(); post.setEntity(reqEntity); CloseableHttpResponse response
= httpClient.execute(post); try { System.out.println("----------------------------------------"); System.out.println(response.getStatusLine()); HttpEntity resEntity = response.getEntity(); if (resEntity != null) { System.out.println("Response content: " + InputStreamUtil.toString(resEntity.getContent())); System.out.println("Response content length: " + resEntity.getContentLength()); } EntityUtils.consume(resEntity); } finally { response.close(); } } finally { httpClient.close(); } } }
原文地址:https://www.cnblogs.com/zhao1949/p/7193957.html