importjava.io.IOException;importjava.io.UnsupportedEncodingException;importjava.util.ArrayList;importjava.util.Iterator;importjava.util.List;importjava.util.Map;importjava.util.Map.Entry;importjava.util.Set;importorg.apache.http.HttpEntity;importorg.apache.http.NameValuePair;importorg.apache.http.client.ClientProtocolException;importorg.apache.http.client.config.RequestConfig;importorg.apache.http.client.entity.UrlEncodedFormEntity;importorg.apache.http.client.methods.CloseableHttpResponse;importorg.apache.http.client.methods.HttpGet;importorg.apache.http.client.methods.HttpPost;importorg.apache.http.impl.client.CloseableHttpClient;importorg.apache.http.impl.client.HttpClients;importorg.apache.http.message.BasicNameValuePair;importorg.apache.http.util.EntityUtils;importorg.springframework.util.StringUtils;public classHttpClient4 {/*** doGet Get请求
*@paramurl
*@return
*/
public staticString doGet(String url) {
CloseableHttpClient httpClient= null;
CloseableHttpResponse response= null;
String result= "";try{
httpClient= HttpClients.createDefault();//通过址默认配置创建一个httpClient实例
HttpGet httpGet = new HttpGet(url);//创建httpGet远程连接实例
httpGet.setHeader("Authorization", "Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0");//设置请求头信息,鉴权
RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(35000)//连接主机服务超时时间
.setConnectionRequestTimeout(35000)//请求超时时间
.setSocketTimeout(60000)//数据读取超时时间
.build();
httpGet.setConfig(requestConfig);//为httpGet实例设置配置
response = httpClient.execute(httpGet);//执行get请求得到返回对象
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();
}
}
}returnresult;
}/*** post 请求
*@paramurl 请求地址
*@paramparamMap 请求参数
*@paramcontentType 请求头
*@return
*/
public static String doPost(String url, MapparamMap,String contentType) {
CloseableHttpClient httpClient= null;
CloseableHttpResponse httpResponse= null;
String result= "";
httpClient= HttpClients.createDefault();//创建httpClient实例
HttpPost httpPost = new HttpPost(url);//创建httpPost远程连接实例//配置请求参数实例
RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(35000)//设置连接主机服务超时时间
.setConnectionRequestTimeout(35000)//设置连接请求超时时间
.setSocketTimeout(60000)//设置读取数据连接超时时间
.build();
httpPost.setConfig(requestConfig);//为httpPost实例设置配置
if(StringUtils.isEmpty(contentType)){//设置请求头
httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded");
}else{
httpPost.addHeader("Content-Type", contentType);
}//封装post请求参数
if (null != paramMap && paramMap.size() > 0) {
List nvps = new ArrayList();
Set> entrySet = paramMap.entrySet();//通过map集成entrySet方法获取entity
Iterator> iterator = entrySet.iterator();//循环遍历,获取迭代器
while(iterator.hasNext()) {
Entry mapEntry =iterator.next();
nvps.add(newBasicNameValuePair(mapEntry.getKey(), mapEntry.getValue().toString()));
}//为httpPost设置封装好的请求参数
try{
httpPost.setEntity(new UrlEncodedFormEntity(nvps, "UTF-8"));
}catch(UnsupportedEncodingException e) {
e.printStackTrace();
}
}try{
httpResponse= httpClient.execute(httpPost);//httpClient对象执行post请求,并返回响应参数对象
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();
}
}
}returnresult;
}
}