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);

        // System.out.println("executing request " + post.getRequestLine());
        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();
        }

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值