http post multipart/mixed的文件.

来源:互联网 发布:rails 修改端口号为80 编辑:程序博客网 时间:2024/05/21 10:10

依赖.

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

原创粉丝点击