380 lines
10 KiB
Plaintext
380 lines
10 KiB
Plaintext
|
|
package com.nationalelectric.greenH5.utils;
|
|||
|
|
|
|||
|
|
import org.apache.commons.httpclient.HttpVersion;
|
|||
|
|
import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
|
|||
|
|
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.io.IOUtils;
|
|||
|
|
import org.apache.commons.httpclient.HttpClient;
|
|||
|
|
import org.apache.commons.httpclient.HttpStatus;
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
import java.io.BufferedReader;
|
|||
|
|
import java.io.InputStream;
|
|||
|
|
import java.io.InputStreamReader;
|
|||
|
|
import java.nio.charset.Charset;
|
|||
|
|
import java.util.Iterator;
|
|||
|
|
import java.util.Map;
|
|||
|
|
import java.util.Map.Entry;
|
|||
|
|
|
|||
|
|
|
|||
|
|
public class HttpClientUtil {
|
|||
|
|
/**
|
|||
|
|
* HTTP请求超时时间,单位毫秒,默认30秒
|
|||
|
|
*/
|
|||
|
|
public static final int TIMEOUT = 30000;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 字符编码,默认UTF8
|
|||
|
|
*/
|
|||
|
|
public static final String CHARSET = "UTF-8";
|
|||
|
|
|
|||
|
|
public final static String jsonType = "application/json;charset=UTF-8";
|
|||
|
|
|
|||
|
|
private static MultiThreadedHttpConnectionManager cm = new MultiThreadedHttpConnectionManager();
|
|||
|
|
|
|||
|
|
static {
|
|||
|
|
// 单主机最大50个连接
|
|||
|
|
cm.getParams().setDefaultMaxConnectionsPerHost(50);
|
|||
|
|
// 所有主机合计5000连接
|
|||
|
|
cm.getParams().setMaxTotalConnections(5000);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 获取客户端实例
|
|||
|
|
*
|
|||
|
|
* @param
|
|||
|
|
*
|
|||
|
|
* @param
|
|||
|
|
*
|
|||
|
|
* @return
|
|||
|
|
*/
|
|||
|
|
public static HttpClient createHttpClient() throws Exception {
|
|||
|
|
HttpClient client = new HttpClient(cm);
|
|||
|
|
|
|||
|
|
client.getHttpConnectionManager().getParams()
|
|||
|
|
.setConnectionTimeout(TIMEOUT);
|
|||
|
|
|
|||
|
|
client.getHttpConnectionManager().getParams().setSoTimeout(TIMEOUT);
|
|||
|
|
|
|||
|
|
return client;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 获取POST请求
|
|||
|
|
*
|
|||
|
|
* @param url
|
|||
|
|
* 资源地址
|
|||
|
|
* @param params
|
|||
|
|
* POST提交参数
|
|||
|
|
* @return
|
|||
|
|
*/
|
|||
|
|
public static PostMethod getPostMethod(String url,
|
|||
|
|
Map<String, String> params) throws Exception {
|
|||
|
|
PostMethod postMethod = new PostMethod(url);
|
|||
|
|
postMethod.getParams().setSoTimeout(TIMEOUT);
|
|||
|
|
postMethod.getParams().setContentCharset(CHARSET);
|
|||
|
|
postMethod.getParams().setVersion(HttpVersion.HTTP_1_1);
|
|||
|
|
|
|||
|
|
if (null != params && !(params.isEmpty())) {
|
|||
|
|
Iterator<Entry<String, String>> iter = params.entrySet().iterator();
|
|||
|
|
System.out.println("Charset.defaultCharset():"+Charset.defaultCharset());
|
|||
|
|
while (iter.hasNext()) {
|
|||
|
|
Entry<String, String> param = iter.next();
|
|||
|
|
//postMethod.addParameter(param.getKey(), URLEncoder.encode(param.getValue(), "UTF-8"));
|
|||
|
|
postMethod.addParameter(param.getKey(), param.getValue());
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return postMethod;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 获取POST请求
|
|||
|
|
*
|
|||
|
|
* @param url
|
|||
|
|
* 资源地址
|
|||
|
|
* @param body
|
|||
|
|
* POST提交参数
|
|||
|
|
* @return
|
|||
|
|
*/
|
|||
|
|
public static PostMethod getPostMethod(String url, String body)
|
|||
|
|
throws Exception {
|
|||
|
|
PostMethod postMethod = new PostMethod(url);
|
|||
|
|
postMethod.getParams().setSoTimeout(TIMEOUT);
|
|||
|
|
postMethod.getParams().setContentCharset(CHARSET);
|
|||
|
|
postMethod.getParams().setVersion(HttpVersion.HTTP_1_1);
|
|||
|
|
|
|||
|
|
if (null != body && !("".equals(body))) {
|
|||
|
|
RequestEntity requestEntity = new StringRequestEntity(body, "application/json", "UTF-8");
|
|||
|
|
postMethod.setRequestEntity(requestEntity);
|
|||
|
|
// postMethod.addRequestHeader("Content-Length",
|
|||
|
|
// String.valueOf(body.getBytes().length));
|
|||
|
|
// postMethod.setRequestBody(body);
|
|||
|
|
} else {
|
|||
|
|
postMethod.addRequestHeader("Content-Length", String.valueOf(0));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return postMethod;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 获取POST请求
|
|||
|
|
* @param url
|
|||
|
|
* 资源地址
|
|||
|
|
* @param body
|
|||
|
|
* POST提交参数
|
|||
|
|
* @return
|
|||
|
|
* @throws Exception
|
|||
|
|
*/
|
|||
|
|
public static PostMethod getIscPostMethod(String url, String body, String sign, String appId)
|
|||
|
|
throws Exception {
|
|||
|
|
PostMethod postMethod = new PostMethod(url);
|
|||
|
|
postMethod.getParams().setSoTimeout(TIMEOUT);
|
|||
|
|
postMethod.getParams().setContentCharset(CHARSET);
|
|||
|
|
postMethod.getParams().setVersion(HttpVersion.HTTP_1_1);
|
|||
|
|
|
|||
|
|
if (null != body && !("".equals(body))) {
|
|||
|
|
postMethod.addRequestHeader("Content-Length",
|
|||
|
|
String.valueOf(body.getBytes().length));
|
|||
|
|
postMethod.setRequestBody(body);
|
|||
|
|
} else {
|
|||
|
|
postMethod.addRequestHeader("Content-Length", String.valueOf(0));
|
|||
|
|
}
|
|||
|
|
// 设置头信息
|
|||
|
|
postMethod.addRequestHeader("Content-Type", jsonType);
|
|||
|
|
postMethod.addRequestHeader("Accept", "application/json");
|
|||
|
|
postMethod.addRequestHeader("X-Acloud-Data-Sign", sign);
|
|||
|
|
postMethod.addRequestHeader("X-Clientid", appId);
|
|||
|
|
|
|||
|
|
return postMethod;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 获取POST请求
|
|||
|
|
* @param url
|
|||
|
|
* 资源地址
|
|||
|
|
* @param body
|
|||
|
|
* POST提交参数
|
|||
|
|
* @param sign
|
|||
|
|
* 签名
|
|||
|
|
* @param accessToken
|
|||
|
|
* accessToken
|
|||
|
|
* @param appId
|
|||
|
|
* 系统id
|
|||
|
|
* @return
|
|||
|
|
* @throws Exception
|
|||
|
|
*/
|
|||
|
|
public static PostMethod getIscPostMethod2(String url, String body, String sign, String accessToken, String appId)
|
|||
|
|
throws Exception {
|
|||
|
|
PostMethod postMethod = new PostMethod(url);
|
|||
|
|
postMethod.getParams().setSoTimeout(TIMEOUT);
|
|||
|
|
postMethod.getParams().setContentCharset(CHARSET);
|
|||
|
|
postMethod.getParams().setVersion(HttpVersion.HTTP_1_1);
|
|||
|
|
|
|||
|
|
if (null != body && !("".equals(body))) {
|
|||
|
|
// postMethod.addRequestHeader("Content-Length",
|
|||
|
|
// String.valueOf(body.getBytes().length));
|
|||
|
|
RequestEntity requestEntity = new StringRequestEntity(body, "application/json", "UTF-8");
|
|||
|
|
postMethod.setRequestEntity(requestEntity);
|
|||
|
|
// postMethod.setRequestBody(body);
|
|||
|
|
} else {
|
|||
|
|
postMethod.addRequestHeader("Content-Length", String.valueOf(0));
|
|||
|
|
}
|
|||
|
|
// 设置头信息
|
|||
|
|
postMethod.addRequestHeader("Content-Type", jsonType);
|
|||
|
|
postMethod.addRequestHeader("Accept", "application/json");
|
|||
|
|
postMethod.addRequestHeader("X-ISC-AccessToken", accessToken);
|
|||
|
|
postMethod.addRequestHeader("X-Acloud-Data-Sign", sign);
|
|||
|
|
postMethod.addRequestHeader("X-Clientid", appId);
|
|||
|
|
|
|||
|
|
return postMethod;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public static String send(String url, Map<String, String> params) {
|
|||
|
|
|
|||
|
|
int statusCode = 0;
|
|||
|
|
String re = "";
|
|||
|
|
|
|||
|
|
HttpClient client = null;
|
|||
|
|
PostMethod postMethod = null;
|
|||
|
|
|
|||
|
|
InputStream in = null;
|
|||
|
|
BufferedReader br = null;
|
|||
|
|
try {
|
|||
|
|
client = createHttpClient();
|
|||
|
|
|
|||
|
|
if (null != client) {
|
|||
|
|
|
|||
|
|
postMethod = getPostMethod(url, params);
|
|||
|
|
|
|||
|
|
if (null != postMethod) {
|
|||
|
|
client.executeMethod(postMethod);
|
|||
|
|
|
|||
|
|
statusCode = postMethod.getStatusCode();
|
|||
|
|
System.out.println("=================>>statusCode: " + statusCode);
|
|||
|
|
if (HttpStatus.SC_OK == statusCode) {
|
|||
|
|
in = postMethod.getResponseBodyAsStream();
|
|||
|
|
br = new BufferedReader(new InputStreamReader(in));
|
|||
|
|
StringBuffer sbf = new StringBuffer();
|
|||
|
|
String result = "";
|
|||
|
|
while ((result = br.readLine())!=null) {
|
|||
|
|
sbf.append(result);
|
|||
|
|
}
|
|||
|
|
re = sbf.toString();
|
|||
|
|
System.out.println("=================>>ResponseBody: " + re);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
} catch (Exception e) {
|
|||
|
|
e.printStackTrace();
|
|||
|
|
} finally {
|
|||
|
|
if (null != postMethod) {
|
|||
|
|
postMethod.releaseConnection();
|
|||
|
|
}
|
|||
|
|
IOUtils.closeQuietly(br);
|
|||
|
|
IOUtils.closeQuietly(in);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
System.out.println("exit method com.syit.util.HttpClientUtil.send");
|
|||
|
|
|
|||
|
|
return re;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public static String send2(String url, String body) {
|
|||
|
|
int statusCode = 0;
|
|||
|
|
String re = "";
|
|||
|
|
|
|||
|
|
HttpClient client = null;
|
|||
|
|
PostMethod postMethod = null;
|
|||
|
|
InputStream in = null;
|
|||
|
|
BufferedReader br = null;
|
|||
|
|
try {
|
|||
|
|
client = createHttpClient();
|
|||
|
|
|
|||
|
|
if (null != client) {
|
|||
|
|
|
|||
|
|
postMethod = getPostMethod(url, body);
|
|||
|
|
|
|||
|
|
if (null != postMethod) {
|
|||
|
|
client.executeMethod(postMethod);
|
|||
|
|
|
|||
|
|
statusCode = postMethod.getStatusCode();
|
|||
|
|
System.out.println("=================>>statusCode: " + statusCode);
|
|||
|
|
if (HttpStatus.SC_OK == statusCode) {
|
|||
|
|
in = postMethod.getResponseBodyAsStream();
|
|||
|
|
br = new BufferedReader(new InputStreamReader(in));
|
|||
|
|
StringBuffer sbf = new StringBuffer();
|
|||
|
|
String result = "";
|
|||
|
|
while ((result = br.readLine())!=null) {
|
|||
|
|
sbf.append(result);
|
|||
|
|
}
|
|||
|
|
re = sbf.toString();
|
|||
|
|
System.out.println("ResponseBody: " + re);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
} catch (Exception e) {
|
|||
|
|
e.printStackTrace();
|
|||
|
|
} finally {
|
|||
|
|
if (null != postMethod) {
|
|||
|
|
postMethod.releaseConnection();
|
|||
|
|
}
|
|||
|
|
IOUtils.closeQuietly(br);
|
|||
|
|
IOUtils.closeQuietly(in);
|
|||
|
|
}
|
|||
|
|
return re;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public static String iscSend(String url, String body, String sign, String appId) {
|
|||
|
|
int statusCode = 0;
|
|||
|
|
String re = "";
|
|||
|
|
HttpClient client = null;
|
|||
|
|
PostMethod postMethod = null;
|
|||
|
|
InputStream in = null;
|
|||
|
|
BufferedReader br = null;
|
|||
|
|
try {
|
|||
|
|
client = createHttpClient();
|
|||
|
|
|
|||
|
|
if (null != client) {
|
|||
|
|
|
|||
|
|
postMethod = getIscPostMethod(url, body, sign, appId);
|
|||
|
|
|
|||
|
|
if (null != postMethod) {
|
|||
|
|
client.executeMethod(postMethod);
|
|||
|
|
|
|||
|
|
statusCode = postMethod.getStatusCode();
|
|||
|
|
System.out.println("=================>>statusCode: " + statusCode);
|
|||
|
|
if (HttpStatus.SC_OK == statusCode) {
|
|||
|
|
in = postMethod.getResponseBodyAsStream();
|
|||
|
|
br = new BufferedReader(new InputStreamReader(in));
|
|||
|
|
StringBuffer sbf = new StringBuffer();
|
|||
|
|
String result = "";
|
|||
|
|
while ((result = br.readLine())!=null) {
|
|||
|
|
sbf.append(result);
|
|||
|
|
}
|
|||
|
|
re = sbf.toString();
|
|||
|
|
System.out.println("ResponseBody: " + re);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
} catch (Exception e) {
|
|||
|
|
e.printStackTrace();
|
|||
|
|
} finally {
|
|||
|
|
if (null != postMethod) {
|
|||
|
|
postMethod.releaseConnection();
|
|||
|
|
}
|
|||
|
|
IOUtils.closeQuietly(br);
|
|||
|
|
IOUtils.closeQuietly(in);
|
|||
|
|
}
|
|||
|
|
return re;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public static String iscSend2(String url, String body, String sign, String accessToken, String appId) {
|
|||
|
|
int statusCode = 0;
|
|||
|
|
String re = "";
|
|||
|
|
HttpClient client = null;
|
|||
|
|
PostMethod postMethod = null;
|
|||
|
|
InputStream in = null;
|
|||
|
|
BufferedReader br = null;
|
|||
|
|
try {
|
|||
|
|
client = createHttpClient();
|
|||
|
|
|
|||
|
|
if (null != client) {
|
|||
|
|
|
|||
|
|
postMethod = getIscPostMethod2(url, body, sign, accessToken, appId);
|
|||
|
|
|
|||
|
|
if (null != postMethod) {
|
|||
|
|
client.executeMethod(postMethod);
|
|||
|
|
|
|||
|
|
statusCode = postMethod.getStatusCode();
|
|||
|
|
System.out.println("=================>>statusCode: " + statusCode);
|
|||
|
|
if (HttpStatus.SC_OK == statusCode) {
|
|||
|
|
in = postMethod.getResponseBodyAsStream();
|
|||
|
|
br = new BufferedReader(new InputStreamReader(in));
|
|||
|
|
StringBuffer sbf = new StringBuffer();
|
|||
|
|
String result = "";
|
|||
|
|
while ((result = br.readLine())!=null) {
|
|||
|
|
sbf.append(result);
|
|||
|
|
}
|
|||
|
|
re = sbf.toString();
|
|||
|
|
//System.out.println("ResponseBody: " + re);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
} catch (Exception e) {
|
|||
|
|
e.printStackTrace();
|
|||
|
|
} finally {
|
|||
|
|
if (null != postMethod) {
|
|||
|
|
postMethod.releaseConnection();
|
|||
|
|
}
|
|||
|
|
IOUtils.closeQuietly(br);
|
|||
|
|
IOUtils.closeQuietly(in);
|
|||
|
|
}
|
|||
|
|
return re;
|
|||
|
|
}
|
|||
|
|
}
|