HttpClientUtil(HttpClient工具类)

来源:互联网 发布:淘宝买的三鞭酒 编辑:程序博客网 时间:2024/05/23 18:12
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;
}


}
原创粉丝点击