`

利用HttpClient以post形式上传文件

    博客分类:
  • java
阅读更多
/**
 * created since 2012-4-6
 */
package com.yonge.http;

import java.io.File;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.multipart.FilePart;
import org.apache.commons.httpclient.methods.multipart.MultipartRequestEntity;
import org.apache.commons.httpclient.methods.multipart.Part;

/**
 * @author wb-gaoy
 * @version $Id: HttpClientTest.java,v 0.1 2012-4-6 下午1:38:53 wb-gaoy Exp $
 */
public class HttpClientUploadFileTest {

    public void uploadFile(File file, String url) {
        if (!file.exists()) {
            return;
        }
        PostMethod postMethod = new PostMethod(url);
        try {
            //FilePart:用来上传文件的类
        FilePart fp = new FilePart("filedata", file);
            Part[] parts = { fp };

            //对于MIME类型的请求,httpclient建议全用MulitPartRequestEntity进行包装
            MultipartRequestEntity mre = new MultipartRequestEntity(parts, postMethod.getParams());
            postMethod.setRequestEntity(mre);
            HttpClient client = new HttpClient();
            client.getHttpConnectionManager().getParams().setConnectionTimeout(50000);// 设置连接时间
            int status = client.executeMethod(postMethod);
            if (status == HttpStatus.SC_OK) {
                System.out.println(postMethod.getResponseBodyAsString());
            } else {
                System.out.println("fail");
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //释放连接
            postMethod.releaseConnection();
        }
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        HttpClientUploadFileTest test = new HttpClientUploadFileTest();
        test.uploadFile(new File("e:/default.css"),
            "http://ecmng.local.sit.alipay.net/receiveDevZipFile.json?summary=1010100");
    }

}

 

1
1
分享到:
评论
3 楼 zhujyy 2014-05-30  
如果 还有其他参数该怎么办呢
2 楼 梅花香自苦寒来 2013-11-22  
厉害
1 楼 yjxtd 2012-11-19  
能终止上传么?

相关推荐

    HttpClient 文件上传

    它提供了丰富的API来实现各种复杂的HTTP操作,包括文件上传。在这个场景中,我们主要关注如何使用HttpClient进行文件上传。 ...通过理解这些概念,你可以更有效地利用HttpClient实现文件上传功能。

    四、使用HttpClient上传测试文件服务器

    本篇文章将详细讲解如何利用HttpClient上传文件到测试服务器,这在进行API测试、自动化测试或者集成测试时非常有用。我们先来理解一下HttpClient的基本概念,然后逐步探讨文件上传的步骤。 HttpClient是由Apache...

    C# http方式文件上传客户端

    2. **创建MultipartFormDataContent**:文件上传通常使用多部分形式的数据内容,因此需要创建一个`MultipartFormDataContent`对象,用于封装文件和其他可能的表单数据。 ```csharp MultipartFormDataContent ...

    上传文件的服务器的解析工具

    本篇文章将详细讲解如何使用Java的Apache HttpClient库通过POST方法上传文件,以及在服务器端如何利用HttpMime库进行解析。 Apache HttpClient是一个强大的HTTP客户端实现,它提供了一种灵活且可扩展的方式来执行...

    commons-httpclient.zip

    "commons-httpclient.zip" 文件很可能是 Apache Commons HttpClient 库的源代码或二进制包的压缩形式。 Apache Commons HttpClient 提供了丰富的功能,包括但不限于: 1. **HTTP 协议支持**:HttpClient 支持 ...

    上传文件到alfresco服务器

    7. **集成测试**:在开发完成后,进行集成测试以确保上传文件的功能正常运行,包括不同文件类型、大小和权限的测试。 综上所述,通过理解Alfresco的工作原理,掌握HttpClient的使用方法,以及熟悉Alfresco的Web ...

    HTTP POST 发送文件示例程序

    HTTP POST 是一种在Web开发中广泛使用的HTTP方法,用于向服务器发送数据,特别是当需要上传文件或提交表单数据时。在这个"HTTP POST 发送文件示例程序"中,我们将探讨如何利用编程语言来实现这一功能,以上传文件到...

    客户端文件上传

    9. **优化**:为了提高上传效率,可以考虑使用异步编程,如C#的`async/await`关键字,使得上传文件的同时,用户界面仍能保持响应。 通过以上步骤,我们可以构建一个完整的客户端文件上传系统,其中WPF提供用户界面...

    java上传文件到服务器

    在Java编程中,上传文件到服务器是一项常见的任务,特别是在Web应用程序和云计算环境中。这个过程涉及到客户端(通常是用户设备上的Java程序)与服务器之间的交互,通过HTTP或HTTPS协议发送文件数据。下面将详细介绍...

    java上传文件

    2. HTTP协议:上传文件通常涉及HTTP的POST请求,特别是当文件上传发生在Web应用中时。HTTP协议允许在请求体中携带数据,例如,通过多部分/形式数据(Multipart/form-data)格式来发送文件。在Java中,可以使用Apache...

    C#利用post访问接口

    POST是HTTP协议中的一个方法,用于向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求正文中,可以是JSON、XML或其他格式。 在C#中,我们可以使用HttpClient类来实现POST请求。...

    HttpClient4.2.3API(英文)

    - 使用`MultipartEntityBuilder`创建多部分表单数据,适用于上传文件。 8. **性能优化**: - 使用连接池来减少建立新连接的时间。 - 预认证(Preemptive Auth)可以在请求之前发送认证信息,减少延迟。 9. **...

    upload实现多附件上传

    这样,浏览器才会以多部分/混合内容(MIME类型)的形式发送文件数据,这是上传文件所必需的。 ```html <form action="/upload" method="POST" enctype="multipart/form-data"> 上传 ``` 三、Spring MVC控制器 ...

    httpclient和httpcore和httpmime和opencsv-2.3和ZSDK_ANDROID_API

    HttpMime包含`MultipartEntity`类,可以方便地处理多部分形式的数据,常见于文件上传。 4. **OpenCSV**:OpenCSV是一个轻量级的Java库,专门用于读写CSV(逗号分隔值)文件。在处理数据导入导出时,特别是在移动...

    C#图片本地上传

    - 图片文件常以二进制形式读取,以保持原始数据不受影响。 3. **`OpenFileDialog`控件**: - 这是Winform应用中用来打开文件选择对话框的控件,用户可以通过它选择本地图片文件。 - 设置`Filter`属性来限制可选...

    WCF流:通过HTTP上传/下载文件

    WCF的流式传输模式允许数据以连续的流形式进行传输,而不是一次性加载到内存中。这种模式对于处理大文件特别有用,因为它避免了在传输过程中一次性加载整个文件到内存的风险,从而降低了内存溢出的可能性。 ### 2. ...

    Base64.java及其使用方法

    在Android开发中,如果需要通过HTTP客户端(如HttpClient)将图片上传到服务器,由于HTTP协议本身只支持ASCII字符,不能直接传输二进制数据,因此通常会先将图片数据转化为Base64字符串,再以文本形式发送,服务器端...

    zhifangtu.rar_histogram_上传图片_上传图片 数据库_批量 上传_直方图 CSHARP

    图片数据可能以二进制形式存储在BLOB(Binary Large Object)类型的字段里。 4. **批量上传**:批量上传涉及处理多个文件或数据记录。开发者可能编写了一个循环,遍历用户选择的多个文件,然后逐一执行上传操作。这...

    httpmime-4.0.1.jar.zip

    1. **发送POST请求**:爬虫不仅仅局限于GET请求,有时我们需要通过POST方式提交表单数据或上传文件。Httpmime库提供了构建Multipart/form-data请求的能力,这对于模拟用户登录、提交表单等场景非常有用。通过...

    监控Grafana模板secret.zip

    这些Secrets在模板中通常以占位符形式存在,例如`{{ secrets.my_api_key }}`,在Grafana实例应用模板时,会自动替换为实际的Secret值。 为了使用这个"secret.JSON"模板,你需要在Grafana实例上执行导入操作。首先,...

Global site tag (gtag.js) - Google Analytics