• Java 中使用 HttpClient 4.3.6 进行文件上传


    代码部分

    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.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.util.EntityUtils;
    import org.junit.Test;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    
    public class SimpleTest {
        @Test
        public void fileUpload() {
            String url = "http://site.com/api";
            CloseableHttpClient httpClient = HttpClients.createDefault();
    
           
            try {
                // 发送二进制数据(文件)
                MultipartEntityBuilder builder = MultipartEntityBuilder.create();
                File f = new File("/Path/of/your/file");
                builder.addBinaryBody(
                        "file",
                        new FileInputStream(f),
                        ContentType.APPLICATION_OCTET_STREAM,
                        f.getName()
                );
                
                // 发送文本数据
                builder.addTextBody("field1",
                        "yes",
                        ContentType.TEXT_PLAIN
                );
                HttpEntity multipart = builder.build();
    
                
                HttpPost httpPost = new HttpPost(url);
                httpPost.setEntity(multipart);
                CloseableHttpResponse response = httpClient.execute(httpPost);
                System.out.println(EntityUtils.toString(response.getEntity()));
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    

    Maven 依赖

    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.3.6</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpmime</artifactId>
        <version>4.3.6</version>
        <scope>compile</scope>
    </dependency>
    
  • 相关阅读:
    Celery详解
    JWT详解
    进程及进程池
    多线程详解
    python常用模块之os模块的用法
    python常用模块之paramiko与ssh
    reflect 反射
    http 静态文件
    模板渲染语言
    http web 开发
  • 原文地址:https://www.cnblogs.com/imzhizi/p/upload-file-with-httpclient436-in-java.html
Copyright © 2020-2023  润新知