zoukankan      html  css  js  c++  java
  • 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>
    
  • 相关阅读:
    EventBus详解
    Java BigDecimal使用
    StringFormate使用
    Sourcetree拉取推送问题
    Android下拉刷新控件android-Ultra-Pull-To-Refresh 使用
    SourceTree跳过Atlassian账号,免登陆,跳过初始设置
    Android Studio3.2新建项目gradle read time out
    底部导航栏使用BottomNavigationBar
    PopupWindow封装
    电脑连接真机,但是androidstudio不显示手机,ADB Interface黄色感叹号
  • 原文地址:https://www.cnblogs.com/imzhizi/p/upload-file-with-httpclient436-in-java.html
Copyright © 2011-2022 走看看