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() ); } }
相关推荐
文档中详细演示了如何使用HttpClient4进行文件上传
httpclient3 httpclient4 上传文件 乱码问题
文件上传 HttpClient
httpclient和RestfuL服务风格上传下载文件,可改为JAVA分布式系统进行交互,具体用法和改法详见代码里的注释
使用httpclient上传文件, CloseableHttpClient httpClient = HttpClientBuilder.create().build();
本功能支持文件上传 下载,支持请求流,支持JSON、XML请求,本版本是httpclient 4,其它jar包自行下载
本人自己总结的httpClient PostMethod 上传文件完整实例 以及 使用java PostMethod 和GetMethod 发送请求实例 及乱码处理
NULL 博文链接:https://wangwang-163-com.iteye.com/blog/728831
httpClient上传文件,能直接运行的代码,appache commons
用httpcient上传文件,用httpclient上传文件
HttpClient 上传文件 Servlet 处理文件上传 commons-fileupload 处理文件上传 commons-fileupload 处理文件上传,在struts中可以不用对应actionform,在jsp,servelet中应用都很方便
花了大半天写的测试类,用的时候记得改下引用的包名,可以当util工具类用,其他说明见博客 ...流方式发送接收: ...觉得可以的话,又不想复制粘贴,就花点积分下载吧,o(* ̄︶ ̄*)o
关闭HttpClient日志的logback文件
使用HttpClient实现文件的上传所需lib
HttpClient4.2.5实现文件上传,无中文文件名乱码问题。亲测无问题。有问题可吐槽!
使用HttpClient方式进行文件上传时需要用到的jar包,亲测可用。
该工具类使用httpclient进行http or https请求,包括requestbody格式和form表单格式,另外含文件服务器中转上传方法,几乎支持所有常用接口调用,内含详细注释和说明文件,含jar包,及maven方式引用,拿过去直接用吧
Eclipse下完整的java程序,包含HttpClient的全部jar包。通过java类文件,实现通过链接将文件下载本地
主要介绍了HttpClient通过Post上传文件的实例代码的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下