今天在为公司写网络硬盘的压力测试工具时使用了HttpClient,比较容易的解决了登录、上传、下载、列表等功能的测试,但也遇到了一些问题,先看看代码:
<!----> 1
File f1
=
new
File(
"
D:\\download\\aa.txt
"
);
2
PostMethod filePost
=
new
PostMethod(
"
http://10.3.3.106:8090/~jid=aWHLXB6y4O9a/webdrive/upload.do?contentID=99999820&action=submit
"
);
3
try
{
4
Part[] parts
=
{
new
FilePart(
"
file0
"
, f1)};
5
filePost.setRequestEntity(
new
MultipartRequestEntity(parts, filePost.getParams()));
6
}
catch
(FileNotFoundException e){
7
System.out.println(
"
===================file not found exception:
"
+
e);
8
}
9
HttpClient client
=
new
HttpClient();
10
//
若上传的文件比较大 , 可在此设置最大的连接超时时间
11
//
client.getHttpConnectionManager(). getParams().setConnectionTimeout(5000);
12
int
status
=
0
;
13
try
{
14
15
status
=
client.executeMethod(filePost);
16
17
}
catch
(HttpException e) {
18
System.out.println(
"
===================http exception:
"
+
e);
19
}
catch
(IOException e) {
20
System.out.println(
"
===================io exception:
"
+
e);
21
}
finally
{
22
filePost.releaseConnection();
23
}
24
if
(status
==
HttpStatus.SC_OK) {
25
System.out.println(
"
============================UpLoad file OK!
"
);
26
}
本来URL中的contentID和
action两个参数我是通过StringPart来传递的,结果传递上去的值就成了:
action=
Content-Transfer-Encoding: 8bit
submit
而且目前这种方法上传的文件,也会在文件内容的第一行中出现:Content-Transfer-Encoding: 8bit,由于不影响测试的效果,所以就搁置了,等有空时再来研究这个问题,如果有朋友知道问题的原因,也请一定不要吝啬您的回答哦。
分享到:
相关推荐
HttpCore提供低级别的网络通信接口,HttpClient在其之上构建更高级别的HTTP客户端功能。HttpCore的更新主要关注性能优化和错误修复,确保HttpClient的稳定性和效率。 3. **httpmime-4.5.13.jar**:这个库专门用于...
3. **httpcore-4.2.1.jar**:这是HTTP Core库,提供了HTTP协议的基础实现,包括连接管理、请求/响应模型等,HttpClient构建在其之上。 4. **httpclient-cache-4.2.1.jar**:这是一个缓存模块,可以缓存HTTP响应,...
在这个案例中,可能包含了HttpClient 4.3的jar文件,以及其他可能需要的第三方库,如JSON解析库等,这些库支持代码的正常运行。 综上所述,这个压缩包提供了一个基于Apache HttpClient 4.3的Java解决方案,用于自动...
这使得HttpClient成为Java开发中进行HTTP通信的首选工具之一,尤其适用于需要高度定制和高效处理HTTP请求的场景。 总结一下,HttpClient是一个强大的Java HTTP客户端库,能够处理POST和GET请求,并支持SSL/TLS安全...
在处理文件上传的问题上,HttpClient也提供了便捷的方法,使得开发者可以轻松地发送POST请求并附带文件数据。 以下是一个使用HttpClient简单读取网页内容的例子: ```java import java.io.IOException; import org...
在HTTP协议中,GET方法用于获取服务器上的资源,是HTTP中最常用的方法之一。`HttpGet`类提供了构造请求URI、设置请求头等方法,方便开发者定制请求细节。以下是如何创建和使用`HttpGet`的示例: ```java ...
在Android开发中,HTTP通信是应用与服务器交互的重要方式之一,`Android HttpClient`库就是用于实现这一功能的工具。本文将深入探讨如何使用`Android HttpClient`进行HTTP请求,包括GET、POST、PUT和DELETE等常见...
- **多平台支持**:虽然XUtils主要针对Android,但HttpClient是跨平台的,既可以在Android上使用,也可以在Java项目中应用。 然而,需要注意的是,HttpClient在Android API 22及以下版本是内置的,但在更高版本中已...
学习HttpClient时,除了API文档,还可以参考开源社区中的示例代码和经验分享,如GitHub上的项目和StackOverflow上的问题解答。理解HttpClient的工作原理,如连接管理、线程安全性和错误处理机制,对于高效和稳定地...
在Java中,Apache HttpClient库是最常用的HTTP客户端实现之一。要使用它,首先需要在项目中引入相关依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.apache.httpcomponents ...
根据提供的文件内容,我们可以梳理出关于HttpClient入门的相关知识点。 首先,HttpClient是一个开源工具,属于Apache组织,用于处理HTTP请求和响应。它不是一个浏览器,不涉及浏览器的客户端缓存等附加功能,它仅是...
它是一个基于请求与响应模型的、无状态的、应用层协议,通常运行在TCP/IP协议之上。在本项目中,我们将探讨如何使用VC++来实现HTTP协议的两端——HTTP Server和HTTP Client。 首先,我们要理解HTTP Server的工作...
HttpClient 4.1.3是其历史版本之一,该版本包含了完整的HTTP客户端实现,可以在httpcomponents-client-4.1.3-bin.tar.gz文件中找到。这个压缩包包含了HttpClient的核心库和其他必要的依赖,为开发者提供了全面的功能...
HTTPClient库在HTTPCore之上提供了一个高级的API,使得开发者可以更方便地执行HTTP操作。它包括了以下主要特性: - **异步与同步模式**:支持同步和异步两种工作模式,异步模式可以提高并发性能,处理大量并发请求...
在提供的压缩包文件`AspWebService`中,可能包含了示例代码和所需的HTTPClient库,用户可以参考这些示例了解具体实现细节。学习和掌握这一技术,不仅可以增强跨平台通信能力,还能提高开发效率,尤其在与.Net系统...
2. `httpcore.jar`:HttpClient构建在HttpCore之上,HttpCore提供了HTTP协议的基本操作,如连接管理和I/O处理。 3. `httpmime.jar`:这个库支持MIME类型的数据发送,比如表单提交或上传文件。 4. `commons-logging....
HttpClient已经应用在很多的项目中,比如Apache Jakarta上很著名的另外两个开源项目Cactus和HTMLUnit都使用了HttpClient。 下载地址: http://hc.apache.org/downloads.cgi 1.2特性 1. 基于标准、纯净的java语言。...
Java作为一种广泛应用的编程语言,提供了多种方式来实现这一功能,其中之一就是使用Apache HttpClient库。本文将详细介绍如何使用HttpClient发送POST请求并获取响应内容的具体步骤。 #### 二、准备工作 为了能够...