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]}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值