首页 > 代码库 > 代码模拟带文件上传的表单

代码模拟带文件上传的表单

使用的是Apache httpcomponents

相关的maven依赖jar包如下

<dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.4-alpha1</version></dependency><dependency>
<!--必须是4.3以后版本 --><groupId>org.apache.httpcomponents</groupId><artifactId>httpmime</artifactId><version>4.3.1</version></dependency>
 public static void main(String[] args) throws Exception {        if (args.length != 1)  {            System.out.println("File path not given");            System.exit(1);        }        CloseableHttpClient httpclient = HttpClients.createDefault();        try {            HttpPost httppost = new HttpPost("http://localhost:8080" +                    "/servlets-examples/servlet/RequestInfoExample");            FileBody bin = new FileBody(new File(args[0]));            StringBody comment = new StringBody("A binary file of some kind", ContentType.TEXT_PLAIN);            HttpEntity reqEntity = MultipartEntityBuilder.create()                    .addPart("bin", bin)                    .addPart("comment", comment)                    .build();            httppost.setEntity(reqEntity);            System.out.println("executing request " + httppost.getRequestLine());            CloseableHttpResponse response = httpclient.execute(httppost);            try {                System.out.println("----------------------------------------");                System.out.println(response.getStatusLine());                HttpEntity resEntity = response.getEntity();                if (resEntity != null) {                    System.out.println("Response content length: " + resEntity.getContentLength());                }                EntityUtils.consume(resEntity);            } finally {                response.close();            }        } finally {            httpclient.close();        }    }

http://hc.apache.org/httpcomponents-client-ga/httpmime/examples/org/apache/http/examples/entity/mime/ClientMultipartFormPost.java

代码模拟带文件上传的表单