HttpClientUtil(HttpClient工具类)
2017-07-10 17:04
525 查看
import java.util.Map;
import org.apache.commons.collections4.map.HashedMap;
import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.RequestEntity;
import org.apache.commons.httpclient.methods.StringRequestEntity;
import org.apache.commons.httpclient.params.HttpMethodParams;
import org.apache.log4j.Logger;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
public class HttpClientUtil {
private static Logger logger = Logger.getLogger(HttpClientUtil.class);
/**
*timeout:超时(毫秒) encoding:编码
*/
/**
* 以map格式传送参数
* @param url
* @param map
* @param timeout
* @param encoding
* @return
*/
@SuppressWarnings("deprecation")
public static String postWay(String url, Map<String, String> map,
int timeout, String encoding) {
String result = "";
PostMethod postMethod = null;
try {
// 读取内容
HttpClient httpClient = new HttpClient();
// 设置超时
httpClient.setConnectionTimeout(timeout);
if (encoding != null && !"".equals(encoding)) {
// 设置编码
httpClient.getParams().setParameter(
HttpMethodParams.HTTP_CONTENT_CHARSET, encoding);
}
postMethod = new PostMethod(url);
postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
new DefaultHttpMethodRetryHandler());
// 参数
if (map != null && map.size() != 0) {
int i = map.size();
NameValuePair[] params = new NameValuePair[i];
int k = 0;
for (String key : map.keySet()) {
params[k] = new NameValuePair(key, map.get(key));
k++;
}
postMethod.setRequestBody(params);
}
httpClient.executeMethod(postMethod);
// 第一种方式
result = postMethod.getResponseBodyAsString();
} catch (Exception e) {
logger.error("httpclient请求异常", e);
} finally {
postMethod.releaseConnection();
}
return result;
}
/**
* 以json格式传送参数
* @param url
* @param json
* @param timeout
* @param encoding
* @return
*/
public static String postWay(String url, String json,int timeout, String encoding) {
String result = "";
PostMethod postMethod = null;
try {
// 读取内容
HttpClient httpClient = new HttpClient();
// 设置连接超时
httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(timeout);
postMethod = new PostMethod(url);
RequestEntity se = new StringRequestEntity(json, "application/json", encoding);
postMethod.setRequestEntity(se);
postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,new DefaultHttpMethodRetryHandler());
//请求超时
postMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 30000);
httpClient.executeMethod(postMethod);
result = postMethod.getResponseBodyAsString();
} catch (Exception e) {
logger.error("httpclient请求异常", e);
e.printStackTrace();
} finally {
postMethod.releaseConnection();
}
return result;
}
}
import org.apache.commons.collections4.map.HashedMap;
import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.RequestEntity;
import org.apache.commons.httpclient.methods.StringRequestEntity;
import org.apache.commons.httpclient.params.HttpMethodParams;
import org.apache.log4j.Logger;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
public class HttpClientUtil {
private static Logger logger = Logger.getLogger(HttpClientUtil.class);
/**
*timeout:超时(毫秒) encoding:编码
*/
/**
* 以map格式传送参数
* @param url
* @param map
* @param timeout
* @param encoding
* @return
*/
@SuppressWarnings("deprecation")
public static String postWay(String url, Map<String, String> map,
int timeout, String encoding) {
String result = "";
PostMethod postMethod = null;
try {
// 读取内容
HttpClient httpClient = new HttpClient();
// 设置超时
httpClient.setConnectionTimeout(timeout);
if (encoding != null && !"".equals(encoding)) {
// 设置编码
httpClient.getParams().setParameter(
HttpMethodParams.HTTP_CONTENT_CHARSET, encoding);
}
postMethod = new PostMethod(url);
postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
new DefaultHttpMethodRetryHandler());
// 参数
if (map != null && map.size() != 0) {
int i = map.size();
NameValuePair[] params = new NameValuePair[i];
int k = 0;
for (String key : map.keySet()) {
params[k] = new NameValuePair(key, map.get(key));
k++;
}
postMethod.setRequestBody(params);
}
httpClient.executeMethod(postMethod);
// 第一种方式
result = postMethod.getResponseBodyAsString();
} catch (Exception e) {
logger.error("httpclient请求异常", e);
} finally {
postMethod.releaseConnection();
}
return result;
}
/**
* 以json格式传送参数
* @param url
* @param json
* @param timeout
* @param encoding
* @return
*/
public static String postWay(String url, String json,int timeout, String encoding) {
String result = "";
PostMethod postMethod = null;
try {
// 读取内容
HttpClient httpClient = new HttpClient();
// 设置连接超时
httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(timeout);
postMethod = new PostMethod(url);
RequestEntity se = new StringRequestEntity(json, "application/json", encoding);
postMethod.setRequestEntity(se);
postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,new DefaultHttpMethodRetryHandler());
//请求超时
postMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 30000);
httpClient.executeMethod(postMethod);
result = postMethod.getResponseBodyAsString();
} catch (Exception e) {
logger.error("httpclient请求异常", e);
e.printStackTrace();
} finally {
postMethod.releaseConnection();
}
return result;
}
}
相关文章推荐
- 轻松把玩HttpClient之封装HttpClient工具类(五),携带Cookie的请求
- 轻松把玩HttpClient之封装HttpClient工具类(一)(现有网上分享中的最强大的工具类)
- 【HttpClientUtil完整的工具类】
- 轻松把玩HttpClient之封装HttpClient工具类(九),添加多文件上传功能
- HttpClientProxyUtil HTTPClient请求工具类源码
- 轻松把玩HttpClient之封装HttpClient工具类(一)(现有网上分享中的最强大的工具类)
- [工具类]HttpClientUtil简单工具
- 轻松把玩HttpClient之封装HttpClient工具类(五),携带Cookie的请求
- 轻松把玩HttpClient之封装HttpClient工具类(二),插件式配置HttpClient对象
- HttpClientUtil工具类
- java http HttpClientUtil 工具类
- 轻松把玩HttpClient之封装HttpClient工具类(二),插件式配置HttpClient对象
- 轻松把玩HttpClient之封装HttpClient工具类(三),插件式配置Header
- 轻松把玩HttpClient之封装HttpClient工具类(三),插件式配置Header
- 常用工具类之HttpclientUtil
- HttpClient_httpclient 4.3.1 post get的工具类
- 轻松把玩HttpClient之封装HttpClient工具类(四),单线程调用及多线程批量调用测试
- 轻松把玩HttpClient之封装HttpClient工具类(六),封装输入参数,简化工具类
- 轻松把玩HttpClient之封装HttpClient工具类(一)(现有网上分享中的最强大的工具类)
- 轻松把玩HttpClient之封装HttpClient工具类(五),携带Cookie的请求