/**
* 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");
}
}
分享到:
相关推荐
它提供了丰富的API来实现各种复杂的HTTP操作,包括文件上传。在这个场景中,我们主要关注如何使用HttpClient进行文件上传。 ...通过理解这些概念,你可以更有效地利用HttpClient实现文件上传功能。
本篇文章将详细讲解如何利用HttpClient上传文件到测试服务器,这在进行API测试、自动化测试或者集成测试时非常有用。我们先来理解一下HttpClient的基本概念,然后逐步探讨文件上传的步骤。 HttpClient是由Apache...
2. **创建MultipartFormDataContent**:文件上传通常使用多部分形式的数据内容,因此需要创建一个`MultipartFormDataContent`对象,用于封装文件和其他可能的表单数据。 ```csharp MultipartFormDataContent ...
本篇文章将详细讲解如何使用Java的Apache HttpClient库通过POST方法上传文件,以及在服务器端如何利用HttpMime库进行解析。 Apache HttpClient是一个强大的HTTP客户端实现,它提供了一种灵活且可扩展的方式来执行...
7. **集成测试**:在开发完成后,进行集成测试以确保上传文件的功能正常运行,包括不同文件类型、大小和权限的测试。 综上所述,通过理解Alfresco的工作原理,掌握HttpClient的使用方法,以及熟悉Alfresco的Web ...
HTTP POST 是一种在Web开发中广泛使用的HTTP方法,用于向服务器发送数据,特别是当需要上传文件或提交表单数据时。在这个"HTTP POST 发送文件示例程序"中,我们将探讨如何利用编程语言来实现这一功能,以上传文件到...
"commons-httpclient.zip" 文件很可能是 Apache Commons HttpClient 库的源代码或二进制包的压缩形式。 Apache Commons HttpClient 提供了丰富的功能,包括但不限于: 1. **HTTP 协议支持**:HttpClient 支持 ...
9. **优化**:为了提高上传效率,可以考虑使用异步编程,如C#的`async/await`关键字,使得上传文件的同时,用户界面仍能保持响应。 通过以上步骤,我们可以构建一个完整的客户端文件上传系统,其中WPF提供用户界面...
在Java编程中,上传文件到服务器是一项常见的任务,特别是在Web应用程序和云计算环境中。这个过程涉及到客户端(通常是用户设备上的Java程序)与服务器之间的交互,通过HTTP或HTTPS协议发送文件数据。下面将详细介绍...
2. HTTP协议:上传文件通常涉及HTTP的POST请求,特别是当文件上传发生在Web应用中时。HTTP协议允许在请求体中携带数据,例如,通过多部分/形式数据(Multipart/form-data)格式来发送文件。在Java中,可以使用Apache...
POST是HTTP协议中的一个方法,用于向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求正文中,可以是JSON、XML或其他格式。 在C#中,我们可以使用HttpClient类来实现POST请求。...
- 使用`MultipartEntityBuilder`创建多部分表单数据,适用于上传文件。 8. **性能优化**: - 使用连接池来减少建立新连接的时间。 - 预认证(Preemptive Auth)可以在请求之前发送认证信息,减少延迟。 9. **...
这样,浏览器才会以多部分/混合内容(MIME类型)的形式发送文件数据,这是上传文件所必需的。 ```html <form action="/upload" method="POST" enctype="multipart/form-data"> 上传 ``` 三、Spring MVC控制器 ...
例如,可以有一个名为`uploadFile`的方法,接受`InputStream`或`Part`作为参数,表示来自客户端的上传文件。 2. **配置CXF服务端**: 在CXF服务端,我们需要配置一个实现上述接口的类,并设置相应的处理器来处理...
HttpMime包含`MultipartEntity`类,可以方便地处理多部分形式的数据,常见于文件上传。 4. **OpenCSV**:OpenCSV是一个轻量级的Java库,专门用于读写CSV(逗号分隔值)文件。在处理数据导入导出时,特别是在移动...
- 图片文件常以二进制形式读取,以保持原始数据不受影响。 3. **`OpenFileDialog`控件**: - 这是Winform应用中用来打开文件选择对话框的控件,用户可以通过它选择本地图片文件。 - 设置`Filter`属性来限制可选...
WCF的流式传输模式允许数据以连续的流形式进行传输,而不是一次性加载到内存中。这种模式对于处理大文件特别有用,因为它避免了在传输过程中一次性加载整个文件到内存的风险,从而降低了内存溢出的可能性。 ### 2. ...
图片数据可能以二进制形式存储在BLOB(Binary Large Object)类型的字段里。 4. **批量上传**:批量上传涉及处理多个文件或数据记录。开发者可能编写了一个循环,遍历用户选择的多个文件,然后逐一执行上传操作。这...
在Android开发中,如果需要通过HTTP客户端(如HttpClient)将图片上传到服务器,由于HTTP协议本身只支持ASCII字符,不能直接传输二进制数据,因此通常会先将图片数据转化为Base64字符串,再以文本形式发送,服务器端...
1. **发送POST请求**:爬虫不仅仅局限于GET请求,有时我们需要通过POST方式提交表单数据或上传文件。Httpmime库提供了构建Multipart/form-data请求的能力,这对于模拟用户登录、提交表单等场景非常有用。通过...