`
zhengshuangxi1226
  • 浏览: 50438 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

httpClient操作文件

阅读更多
JAVA手机网[www.cnjm.net]import java.io.InputStream;
import java.io.InputStreamReader;
iimport java.io.UnsupportedEncodingException;

import java.util.*;

import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HostConfiguration;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpConnection;
import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;

/**
* @author steven
*/
public class HttpClientExample {

//获得ConnectionManager,设置相关参数
private static MultiThreadedHttpConnectionManager manager =
new MultiThreadedHttpConnectionManager();
private static int connectionTimeOut = 20000;
private static int socketTimeOut = 10000;
private static int maxConnectionPerHost = 5;
private static int maxTotalConnections = 40;

//标志初始化是否完成的flag
private static boolean initialed = false;

//初始化ConnectionManger的方法
public static void SetPara() {
manager.getParams().setConnectionTimeout(connectionTimeOut);
manager.getParams().setSoTimeout(socketTimeOut);
manager.getParams()
.setDefaultMaxConnectionsPerHost(maxConnectionPerHost);
manager.getParams().setMaxTotalConnections(maxTotalConnections);
initialed = true;
JAVA手机网[www.cnjm.net]}

//通过get方法获取网页内容
public static String getGetResponseWithHttpClient(String url, String encode) {
JAVA手机网[www.cnjm.net]HttpClient client = new HttpClient(manager);

if (initialed) {
JAVA手机网[www.cnjm.net]HttpClientExample.SetPara();
}

GetMethod get = new GetMethod(url);
get.setFollowRedirects(true);

JAVA手机网[www.cnjm.net]String result = null;
StringBuffer resultBuffer = new StringBuffer();

try {

client.executeMethod(get);
JAVA手机网[www.cnjm.net]
JAVA手机网[www.cnjm.net]//在目标页面情况未知的条件下,不推荐使用getResponseBodyAsString()方法
//String strGetResponseBody = post.getResponseBodyAsString();
BufferedReader in = new BufferedReader(
new InputStreamReader(
get.getResponseBodyAsStream(),
get.getResponseCharSet()));

String inputLine = null;

while ((inputLine = in.readLine()) != null) {
resultBuffer.append(inputLine);
JAVA手机网[www.cnjm.net]resultBuffer.append("\n");
}

in.close();

result = resultBuffer.toString();

//iso-8859-1 is the default reading encode
result = HttpClientExample.ConverterStringCode(resultBuffer.toString(),
get.getResponseCharSet(),
encode);
} catch (Exception e) {
e.printStackTrace();

result = "";
JAVA手机网[www.cnjm.net]} finally {
get.releaseConnection();

return result;
}
}

public static String getPostResponseWithHttpClient(String url,
String encode) {
HttpClient client = new HttpClient(manager);
JAVA手机网[www.cnjm.net]
if (initialed) {
HttpClientExample.SetPara();
}

JAVA手机网[www.cnjm.net]PostMethod post = new PostMethod(url);
post.setFollowRedirects(false);

StringBuffer resultBuffer = new StringBuffer();

String result = null;

try {
client.executeMethod(post);

BufferedReader in = new BufferedReader(
JAVA手机网[www.cnjm.net]new InputStreamReader(
post.getResponseBodyAsStream(),
post.getResponseCharSet()));
String inputLine = null;

JAVA手机网[www.cnjm.net]while ((inputLine = in.readLine()) != null) {
resultBuffer.append(inputLine);
JAVA手机网[www.cnjm.net]resultBuffer.append("\n");
}

in.close();

//iso-8859-1 is the default reading encode
result = HttpClientExample.ConverterStringCode(resultBuffer.toString(),
post.getResponseCharSet(),
encode);
} catch (Exception e) {
e.printStackTrace();

result = "";
JAVA手机网[www.cnjm.net]} finally {
post.releaseConnection();

JAVA手机网[www.cnjm.net]return result;
}
}

public static String getPostResponseWithHttpClient(String url,
String encode,
NameValuePair[] nameValuePair) {
HttpClient client = new HttpClient(manager);

if (initialed) {
HttpClientExample.SetPara();
}

JAVA手机网[www.cnjm.net]PostMethod post = new PostMethod(url);
post.setRequestBody(nameValuePair);
post.setFollowRedirects(false);
JAVA手机网[www.cnjm.net]
String result = null;
StringBuffer resultBuffer = new StringBuffer();

try {
client.executeMethod(post);
BufferedReader in = new BufferedReader(
new InputStreamReader(
post.getResponseBodyAsStream(),
post.getResponseCharSet()));
String inputLine = null;

while ((inputLine = in.readLine()) != null) {
JAVA手机网[www.cnjm.net]resultBuffer.append(inputLine);
resultBuffer.append("\n");
}

in.close();
JAVA手机网[www.cnjm.net]

//iso-8859-1 is the default reading encode
result = HttpClientExample.ConverterStringCode(resultBuffer.toString(),
post.getResponseCharSet(),
encode);
} catch (Exception e) {
e.printStackTrace();

JAVA手机网[www.cnjm.net]result = "";
} finally {
post.releaseConnection();

return result;
}
}

JAVA手机网[www.cnjm.net]private static String ConverterStringCode(String source, String srcEncode, String destEncode) {
if (src != null) {
try {
return new String(src.getBytes(srcEncode), destEncode);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "";
}
} else {
return "";
JAVA手机网[www.cnjm.net]}
}
}
分享到:
评论

相关推荐

    Arduino HttpClient 库文件

    `HttpClient.cpp` 文件是实现文件,它实现了 `HttpClient.h` 中声明的类和函数。在这里,你可以找到实际执行 HTTP 请求的代码,如建立 TCP 连接、发送数据、接收响应等低级网络操作。这些功能通常是基于 Arduino 的 ...

    通过 HttpClient 下载 文件

    本主题将深入探讨如何利用HttpClient实现文件的下载功能,同时也会涉及相关的源码解析和辅助工具的使用。 首先,HttpClient是一个Java库,它允许开发者以一种与HTTP协议兼容的方式发送请求并接收响应。它提供了丰富...

    HttpClient 4文件上传

    - 它允许向服务器发送数据,常用于文件上传等操作。 3. **MultipartEntity**: - `MultipartEntity`类用于构建多部分实体对象,这些对象可以包含多个部分,每个部分可以是一个文件或者一段文本。 - 通常用于构建...

    使用HttpClient实现文件的上传所需lib

    在Java开发中,HttpClient是一个非常重要的库,它允许我们执行HTTP请求,包括文件的上传操作。这个主题主要涉及以下几个核心知识点: 1. **HttpClient简介**:Apache HttpClient是Apache软件基金会的一个开源项目,...

    httpclient 上传文件

    在本篇中,我们将深入探讨如何利用Apache Commons HTTPClient库来上传文件,以及与之相关的知识点。 首先,`commons-httpclient-3.1.jar`是Apache Commons HTTPClient的版本3.1,这是一个早期但仍然被许多项目使用...

    HttpClient上传文件需要的Jar包

    在这个场景中,"HttpClient上传文件需要的Jar包"指的是在使用HttpClient进行文件上传操作时,你需要确保引入了正确的依赖库。 首先,我们需要了解HttpClient的基本概念。HttpClient是Apache软件基金会的一个项目,...

    https+spring3+httpclient4多文件上传

    标题 "HTTPS + Spring3 + HttpClient4 多文件上传" 涉及到的是在Java环境中,使用Spring3框架和Apache HttpClient4库实现通过HTTPS协议上传多个文件的技术。这个主题涵盖了几大关键知识点,包括HTTPS安全通信、...

    httpclient和RestfuL风格上传下载文件

    通过HTTPClient实现HTTP请求,利用RESTful接口定义清晰的操作方式,可以构建高效、灵活的文件传输方案。同时,理解并遵循良好的编程实践,如编写详细注释,对于提高代码质量和团队效率也是十分重要的。

    基于httpclient的文件可配置的心跳检测应用

    综上,这个项目结合了HttpClient进行网络通信的高级用法,以及文件系统监控的底层操作,为构建健壮的分布式系统提供了一个实用的工具。通过阅读和理解源代码,开发者可以学习到如何构建高效、灵活的网络监控和文件...

    HttpClient模拟客户端传输文件

    这个过程涉及到HTTP的POST请求、文件流操作、多部分实体构建以及HTTP响应的处理。在实际应用中,可能还需要根据服务器的响应处理错误情况,或者对上传进度进行监控。同时,注意在处理完HTTP客户端和响应后要关闭相关...

    httpclient.jar 文件下载

    httpclient.jar文件包含了HttpClient的所有核心类和方法,使得开发者可以便捷地集成到自己的Java应用中。 二、主要功能与API 1. HTTP请求:HttpClient允许开发者创建各种类型的HTTP请求,如GET、POST、PUT、DELETE...

    HttpClient 文件上传

    它提供了丰富的API来实现各种复杂的HTTP操作,包括文件上传。在这个场景中,我们主要关注如何使用HttpClient进行文件上传。 文件上传通常涉及到Web服务器与客户端之间的交互,比如用户通过网页上传图片或文档到...

    struts2 android httpclient 上传文件

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

    Android使用HttpClient上传文件到服务器完整实例

    总结来说,Android通过HttpClient上传文件到服务器涉及以下几个关键步骤: 1. 添加HttpClient及相关库。 2. 创建HttpClient和HttpPost对象。 3. 构建MultipartEntity,包含要上传的文件信息。 4. 设置HttpPost的实体...

    基于httpClient的文件编码导入系统

    这些库能帮助我们高效地解析文件内容,并将数据转化为可操作的对象。 为了保证系统的健壮性和性能,我们还需要考虑错误处理和优化措施。例如,使用try-catch-finally语句处理可能出现的异常,确保资源的及时释放;...

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

    8. **关闭资源**: 完成操作后,记得关闭HttpClient和响应,释放系统资源。 在实际开发中,我们还可以根据需求对HttpClient进行更深入的定制,比如使用`PoolingHttpClientConnectionManager`来管理连接池,提高性能...

    android httpclient文件上传 http协议post get方法向服务器传输数据

    4. **实现细节**:在实际操作中,我们需要先创建`HttpClient`实例,然后创建`HttpPost`对象,设置请求的URL。接着,构建`MultipartEntityBuilder`,添加文件后,将其转化为`HttpEntity`并设置给`HttpPost`。最后,...

    HttpClient实现POST GET和文件下载

    HttpClient是Apache基金会开发的一个HTTP客户端库,广泛应用于Java编程中,用于执行HTTP请求,包括GET、POST以及文件下载等操作。本篇文章将深入探讨如何利用HttpClient实现这些功能,并提供实战代码示例。 首先,...

    httpclient上传文件

    在Java编程环境中,HTTPClient库是一个非常常用的工具,用于实现HTTP协议的各种操作,包括文件上传。Apache Commons HttpClient是这个库的早期版本,虽然现在已被Apache HttpComponents HttpClient所取代,但仍然有...

Global site tag (gtag.js) - Google Analytics