package compile5; import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.mime.MultipartEntity; import org.apache.http.entity.mime.content.FileBody; import org.apache.http.entity.mime.content.StringBody; import org.apache.http.impl.client.DefaultHttpClient; /** * @Description: 模仿表单上传文件 ,将本地文件上传到文件服务器上 * */ public class SendFile { public static void main(String[] args) throws ClientProtocolException, IOException { String filepath="D:\\11111.rar"; //创建加密上传的参数 Date dateNow = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String time = sdf.format(dateNow); StringBuffer key1 = new StringBuffer(); key1.append("123456").append("PRIVATEM").append(time); String myCode = MD5.Md5(key1.toString(), 16); //接收文件的地址 String urlStr = "http://img.baidu.com/file/receiveFile.jsp"; //封装需要上传文件的参数 Map<String, String> textMap = new HashMap<String, String>(); textMap.put("origin", "PRIVATE"); textMap.put("time", time ); textMap.put("secure",myCode); HttpClient httpclient = new DefaultHttpClient(); //请求处理页面 HttpPost httppost = new HttpPost( urlStr ); //创建待处理的文件 FileBody file = new FileBody(new File(filepath)); //对请求的表单域进行填充 MultipartEntity reqEntity = new MultipartEntity(); reqEntity.addPart("file", file); if(textMap!=null ){ Iterator it = textMap.entrySet().iterator(); while(it.hasNext() ){ Map.Entry entry = (Map.Entry)it.next(); String key = (String) entry.getKey(); String value = (String)entry.getValue(); //创建待处理的表单域内容文本 StringBody bodyValue = new StringBody(value); reqEntity.addPart(key , bodyValue); } } //设置请求 httppost.setEntity(reqEntity); //执行 HttpResponse response = httpclient.execute(httppost); HttpEntity httpEntity = response.getEntity(); BufferedReader br = new BufferedReader(new InputStreamReader(httpEntity .getContent(), "UTF-8")); StringBuffer backData = new StringBuffer(); String line = null; while ((line = br.readLine()) != null) { backData.append(line); } System.out.println(backData.toString() ); } }
相关推荐
在Java开发中,经常会遇到需要通过HTTP协议上传文件的需求。Apache HttpClient是一个强大的客户端HTTP组件,它不仅支持HTTP协议,还能处理HTTPS请求,并提供了多种功能来简化HTTP客户端开发过程。本文档将详细介绍...
HttpClient 4 版本引入了许多改进,使得文件上传变得更加简单和高效。在这个主题中,我们将深入探讨HttpClient 4如何实现文件上传,以及相关的核心概念和技术。 首先,我们需要了解HttpClient 4的基本用法。...
在Java开发中,HTTPClient和RESTful风格的接口被广泛用于实现文件的上传与下载功能。HTTPClient是一个强大的HTTP客户端库,而RESTful是一种轻量级的、基于HTTP协议的软件架构风格,常用于构建Web服务。在分布式系统...
这个实体包含了表单数据和要上传的文件内容。 2. **HttpPost**: 创建一个HttpPost对象,并设置目标URL,这将用于向服务器发送POST请求。在HTTP协议中,POST请求常用于上传数据。 3. **EntityEnclosingRequest**: ...
HTTPClient 4提供了`MultipartEntityBuilder`或`HttpEntityEnclosingRequestBase`类来构建多部分表单数据,用于上传文件。首先,你需要创建一个`FileEntity`对象,指定要上传的文件路径,然后将其添加到`...
在本篇中,我们将深入探讨如何利用Apache Commons HTTPClient库来上传文件,以及与之相关的知识点。 首先,`commons-httpclient-3.1.jar`是Apache Commons HTTPClient的版本3.1,这是一个早期但仍然被许多项目使用...
在本示例中,我们将深入探讨如何使用HttpClient的PostMethod来上传文件,以及处理Get和Post请求中的乱码问题。 一、HttpClient基础 HttpClient库提供了一套完整的API,允许我们构建复杂的HTTP请求。它支持GET、POST...
在这个场景中,我们关注的是如何使用HttpClient来上传文件到服务器。Apache HttpClient支持POST请求,特别是Multipart/form-data类型的POST,这是上传文件的标准格式。以下是关于这个主题的详细讲解: 1. **...
使用httpclient上传文件, CloseableHttpClient httpClient = HttpClientBuilder.create().build();
在这个场景中,"HttpClient上传文件需要的Jar包"指的是在使用HttpClient进行文件上传操作时,你需要确保引入了正确的依赖库。 首先,我们需要了解HttpClient的基本概念。HttpClient是Apache软件基金会的一个项目,...
本篇文章将详细讲解如何利用HttpClient上传文件到测试服务器,这在进行API测试、自动化测试或者集成测试时非常有用。我们先来理解一下HttpClient的基本概念,然后逐步探讨文件上传的步骤。 HttpClient是由Apache...
它允许我们将文件作为多部分/form-data类型的数据发送,这是HTTP协议中用于上传文件的标准格式。 3. **文件上传步骤**: - **创建HttpClient对象**:首先,我们需要实例化一个`CloseableHttpClient`对象,它是...
用httpcient上传文件,用httpclient上传文件
HttpClient 上传文件 Servlet 处理文件上传 commons-fileupload 处理文件上传 commons-fileupload 处理文件上传,在struts中可以不用对应actionform,在jsp,servelet中应用都很方便
在这个特定的场景中,我们利用HttpClient来从指定的URL下载文件到本地。以下是对这个主题的详细阐述: 1. **HttpClient介绍**: HttpClient是一个Java库,支持HTTP/1.1协议以及部分HTTP/2特性。它提供了一组高级...
在Android开发中,当涉及到与服务器进行数据交互,特别是上传文件时,如用户注册时上传头像,我们通常会遇到一个问题:内置的`HttpURLConnection`或`HttpClient`并不直接支持表单格式的文件上传。因此,我们需要采取...
服务器端自己写,本示例为客户端代码,可以解决httpClient4乱码问题,是替代修改源码的最佳写法。
标题 "HTTPS + Spring3 + HttpClient4 多文件上传" 涉及到的是在Java环境中,使用Spring3框架和Apache HttpClient4库实现通过HTTPS协议上传多个文件的技术。这个主题涵盖了几大关键知识点,包括HTTPS安全通信、...