`
gaojingsong
  • 浏览: 1200819 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【httpClient4之模拟Http协议文件上传】

阅读更多

1、上传过程

2、上传结果


 3、上传的核心代码

 

//httpClient4使用http-mime.jar包的MultipartEntity实现,

public static String postFile(File file,String url) throws Exception {  

 

       FileBody bin = null;  

       HttpClient httpclient = new DefaultHttpClient();  

       HttpPost httppost = new HttpPost(url);  

       if(file != null) {  

           bin = new FileBody(file);  

       }  

 

       StringBody desc = new StringBody("this is a haproxy config file");  

       

       //请记住,这边传递汉字会出现乱码,解决方法如下,设置好编码格式就好  

        //new StringBody("汉字",Charset.forName("UTF-8")));    

         

       MultipartEntity reqEntity = new MultipartEntity();  

       reqEntity.addPart("email", desc);  

       

       reqEntity.addPart("file1", bin);  

         

       httppost.setEntity(reqEntity);  

       System.out.println("执行: " + httppost.getRequestLine());  

         

       HttpResponse response = httpclient.execute(httppost);  

       System.out.println("statusCode is " + response.getStatusLine().getStatusCode());  

       HttpEntity resEntity = response.getEntity();  

       System.out.println("-------------------------");  

       System.out.println(response.getStatusLine());  

       if (resEntity != null) {  

         System.out.println("返回长度: " + resEntity.getContentLength());  

         System.out.println("返回类型: " + resEntity.getContentType());  

         InputStream in = resEntity.getContent();  

         System.out.println("in is " + in);  

         System.out.println(getStrFromInputSteam(in));  

       }  

       if (resEntity != null) {  

         resEntity.consumeContent();  

       }  

       return null;  

   }  

 

public static InputStream getInputStreamFromString(String str){  

        InputStream in=new ByteArrayInputStream(str.getBytes());

return in;  

 

 

public static String getStrFromInputSteam(InputStream in) throws Exception{  

    BufferedReader bf=new BufferedReader(new InputStreamReader(in,"UTF-8"));  

    //最好在将字节流转换为字符流的时候 进行转码  

    StringBuffer buffer=new StringBuffer();  

    String line="";  

    while((line=bf.readLine())!=null){  

        buffer.append(line);  

    }  

      

   return buffer.toString();  

 

}  

  • 大小: 103.9 KB
  • 大小: 102.9 KB
0
0
分享到:
评论

相关推荐

    HttpClient模拟客户端传输文件

    HttpClient模拟客户端传输文件是Java开发中的常见需求,尤其在与服务器进行交互时,例如上传用户数据、图片或者其他文件。在这个过程中,我们通常会使用POST请求将文件作为请求体发送到服务器。 首先,我们需要引入...

    (最新)HttpClient4模拟登录腾讯微博

    HttpClient4是中国开源软件社区Apache下的一个HTTP客户端编程工具包,主要用来进行HTTP协议通信,它为Java开发者提供了在Java环境中发送HTTP请求并处理响应的强大功能。这篇最新的文章“HttpClient4模拟登录腾讯微博...

    httpclient4

    - **文件上传下载**:通过POST或PUT请求,HttpClient 可以实现文件的上传,通过GET请求实现文件的下载。 - **模拟登录**:HttpClient 支持多种身份验证机制,可以用来模拟用户登录网站。 5. **最佳实践** - **...

    JAVA模拟http上传文件_代码男_新浪博客

    当我们需要实现文件上传功能时,可以通过模拟HTTP请求来完成。这个过程通常涉及到表单提交、Multipart/form-data编码、HttpClient或者HttpURLConnection类的使用。下面将详细探讨这些知识点。 1. **HTTP POST请求**...

    struts2 android httpclient 上传文件

    Struts2、Android和HttpClient是三个关键的技术领域,它们在本次文件上传的场景中相互结合。Struts2是一个流行的Java Web框架,用于构建MVC(模型-视图-控制器)结构的应用程序。Android是Google开发的移动操作系统...

    java处理文件上传的底层实现以及java模拟post协议实现文件上传

    本篇将详细探讨Java处理文件上传的底层实现,以及如何使用Java模拟POST协议来实现文件上传。 首先,我们需要理解文件上传的基本原理。在HTTP协议中,文件上传通常通过POST请求进行。当用户在表单中选择文件并提交时...

    java代码模拟http上传文件_代码_类包

    在Java编程语言中,HTTP(超文本传输协议)被广泛用于客户端与服务器之间的通信,包括文件上传功能。本文将深入探讨如何使用Java实现HTTP文件上传,同时基于提供的压缩包资源,我们将详细介绍相关代码和类库。 首先...

    httpClient测试工具

    HttpClient还支持多部分文件上传,这对于测试涉及文件上传的接口非常有用。通过使用MultipartEntityBuilder,可以添加多个Part,每个Part可以是文件或普通数据。 在发送请求后,HttpClient会返回一个HttpResponse...

    httpCilent模拟客户端上传文件需要的jar

    本篇文章将深入讲解如何使用`httpclient`库实现文件上传,并介绍相关依赖库的作用。 首先,`httpclient`库本身并不包含所有功能,它需要与`httpcore`库配合使用。`httpcore`是`httpclient`的基础组件,提供了低级别...

    HttpClient_学习整理.

    - **文件上传**:实现通过HTTP协议的文件上传功能。 #### 六、总结 通过以上介绍可以看出,HttpClient为开发者提供了强大的功能和灵活性,特别是在处理复杂的HTTP请求和响应方面表现突出。无论是进行简单的网页...

    httpclient4.0

    - 文件下载/上传:通过 POST 或 GET 方式进行大文件传输。 - 爬虫开发:爬取网页数据,进行数据分析。 - 自动化测试:模拟用户行为,测试 Web 应用功能。 总结,HttpClient 4.0 作为 Java 中的网络通信库,其强大的...

    java动态提交网站httpclient

    HTTPClient库允许我们创建GET、POST等请求,添加头信息,处理响应,甚至进行更复杂的操作,如表单提交和文件上传。 在Java中,Apache HttpClient库是最常用的HTTP客户端实现之一。要使用它,首先需要在项目中引入...

    apache fileupload处理文件上传(流式和非流式)

    虽然标题中没有明确提到HTTPClient,但通常在实现文件上传时,我们可能需要使用HTTP客户端库(如Apache HttpClient)来模拟客户端发送文件上传请求。HttpClient允许你构建复杂的HTTP请求,包括POST请求携带文件。...

    HttpClient实例+必备3个jar包

    - `httpmime.jar`:用于处理MIME类型,如在POST请求中上传文件。 6. **导入到IDE**:在描述中提到的"导入myeclipse即可使用",指的是将这三个jar包添加到MyEclipse项目的类路径中,这样项目就能识别并使用...

    httpclient

    - 文件上传下载:HttpClient支持PUT和GET方法,适合处理大文件的上传和下载。 - 自动化测试:在编写自动化测试脚本时,HttpClient可以帮助模拟真实用户行为。 6. 最佳实践: - 使用连接池:通过设置合适的连接池...

    socket httpclient

    2. POST方法:POST方法用于向服务器提交数据,常用于表单提交或上传文件。数据通常包含在请求体中。构造POST请求时,需要在请求头中指定Content-Type和Content-Length,然后将数据写入Socket连接。例如,"POST /form...

    commons-httpClient 3.1 jar和src

    1. **HTTP方法支持**:HttpClient 3.1 支持GET、POST、PUT、DELETE等多种HTTP方法,可以设置请求头、发送表单数据、上传文件等。 2. **连接管理**:提供连接池功能,可以复用TCP连接,提高性能并减少网络延迟。 3. *...

    HttpClient 4.0学习

    - 支持文件上传和下载 - 可配置的重试策略和连接超时 2. **核心概念** - **HttpClient实例**:HttpClient对象是执行HTTP请求的主体,负责管理连接、执行请求和解析响应。 - **HttpRequestBase**:所有HTTP请求...

    httpClient所需所有jar包

    3. `httpmime.jar`: 提供对HTTP多部分/表单数据的支持,用于上传文件或处理复杂请求体。 4. `httpasyncclient.jar`(可选): 如果需要异步处理HTTP请求,此库提供了非阻塞I/O的接口。 5. `httpcore-nio.jar`(可选)...

Global site tag (gtag.js) - Google Analytics