HttpClient 工具类

public class HttpUtils {
public static String doGet(String url) {
CloseableHttpClient httpClient = null;
CloseableHttpResponse response = null;
String result = “”;
try {
// 通过址默认配置创建一个httpClient实例
httpClient = HttpClients.createDefault();
// 创建httpGet远程连接实例
HttpGet httpGet = new HttpGet(url);
// 设置请求头信息,鉴权
httpGet.setHeader(“Authorization”, “Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0”);
// 设置配置请求参数
// 连接主机服务超时时间
RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(35000)
// 请求超时时间
.setConnectionRequestTimeout(35000)
// 数据读取超时时间
.setSocketTimeout(60000).build();
// 为httpGet实例设置配置
httpGet.setConfig(requestConfig);
// 执行get请求得到返回对象
response = httpClient.execute(httpGet);
// 通过返回对象获取返回数据
HttpEntity entity = response.getEntity();
// 通过EntityUtils中的toString方法将结果转换为字符串
result = EntityUtils.toString(entity);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
// 关闭资源
if (null != response) {
try {
response.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (null != httpClient) {
try {
httpClient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return result;
}

public static String doPost(String url, Map<String, Object> paramMap) {
	CloseableHttpClient httpClient = null;
	CloseableHttpResponse httpResponse = null;
	String result = "";
	// 创建httpClient实例
	httpClient = HttpClients.createDefault();
	// 创建httpPost远程连接实例
	HttpPost httpPost = new HttpPost(url);
	// 配置请求参数实例
	RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(35000).setConnectionRequestTimeout(35000)
			.setSocketTimeout(60000).build();
	// 为httpPost实例设置配置
	httpPost.setConfig(requestConfig);
	// 设置请求头
	httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded");
	// 封装post请求参数
	if (null != paramMap && paramMap.size() > 0) {
		List<NameValuePair> nvps = new ArrayList<NameValuePair>();
		// 通过map集成entrySet方法获取entity
		Set<Entry<String, Object>> entrySet = paramMap.entrySet();
		// 循环遍历,获取迭代器
		Iterator<Entry<String, Object>> iterator = entrySet.iterator();
		while (iterator.hasNext()) {
			Entry<String, Object> mapEntry = iterator.next();
			nvps.add(new BasicNameValuePair(mapEntry.getKey(), mapEntry.getValue().toString()));
		}

		// 为httpPost设置封装好的请求参数
		try {
			httpPost.setEntity(new UrlEncodedFormEntity(nvps, "UTF-8"));
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
	}
	try {
		// httpClient对象执行post请求,并返回响应参数对象
		httpResponse = httpClient.execute(httpPost);
		// 从响应对象中获取响应内容
		HttpEntity entity = httpResponse.getEntity();
		result = EntityUtils.toString(entity);
	} catch (ClientProtocolException e) {
		e.printStackTrace();
	} catch (IOException e) {
		e.printStackTrace();
	} finally {
		// 关闭资源
		if (null != httpResponse) {
			try {
				httpResponse.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		if (null != httpClient) {
			try {
				httpClient.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
	return result;
}

public static String doPost(String url, TreeMap<String, String> paramMap) {
	CloseableHttpClient httpClient = null;
	CloseableHttpResponse httpResponse = null;
	String result = "";
	// 创建httpClient实例
	httpClient = HttpClients.createDefault();
	// 创建httpPost远程连接实例
	HttpPost httpPost = new HttpPost(url);
	// 配置请求参数实例
	RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(35000).setConnectionRequestTimeout(35000)
			.setSocketTimeout(60000).build();
	// 为httpPost实例设置配置
	httpPost.setConfig(requestConfig);
	// 设置请求头
	httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded");
	// 封装post请求参数
	if (null != paramMap && paramMap.size() > 0) {
		List<NameValuePair> nvps = new ArrayList<NameValuePair>();
		// 通过map集成entrySet方法获取entity
		Set<Entry<String, String>> entrySet = paramMap.entrySet();
		// 循环遍历,获取迭代器
		Iterator<Entry<String, String>> iterator = entrySet.iterator();
		while (iterator.hasNext()) {
			Entry<String, String> mapEntry = iterator.next();
			nvps.add(new BasicNameValuePair(mapEntry.getKey(), mapEntry.getValue().toString()));
		}

		// 为httpPost设置封装好的请求参数
		try {
			httpPost.setEntity(new UrlEncodedFormEntity(nvps, "UTF-8"));
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
	}
	try {
		// httpClient对象执行post请求,并返回响应参数对象
		httpResponse = httpClient.execute(httpPost);
		// 从响应对象中获取响应内容
		HttpEntity entity = httpResponse.getEntity();
		result = EntityUtils.toString(entity);
	} catch (ClientProtocolException e) {
		e.printStackTrace();
	} catch (IOException e) {
		e.printStackTrace();
	} finally {
		// 关闭资源
		if (null != httpResponse) {
			try {
				httpResponse.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		if (null != httpClient) {
			try {
				httpClient.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
	return result;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值