国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > 幫助中心 > 正文

HttpUtils 發(fā)送http請求工具類(實(shí)例講解)

2024-07-09 22:41:56
字體:
供稿:網(wǎng)友

廢話不多說,直接上代碼

import java.io.IOException;import java.io.UnsupportedEncodingException;import java.net.URISyntaxException;import java.util.ArrayList;import java.util.Map;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.apache.http.HttpEntity;import org.apache.http.NameValuePair;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.config.RequestConfig;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.methods.HttpPost;import org.apache.http.client.methods.HttpRequestBase;import org.apache.http.client.utils.URIBuilder;import org.apache.http.entity.StringEntity;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;import org.apache.http.message.BasicNameValuePair;import org.apache.http.util.EntityUtils;import com.pingan.qhcs.map.audit.constant.CodeConstant;import com.pingan.qhcs.map.audit.exception.MapException;public class HttpClientUtil { protected static Log logger = LogFactory.getLog(HttpClientUtil.class);  private static PoolingHttpClientConnectionManager cm; private static String EMPTY_STR = ""; private static String UTF_8 = "UTF-8"; private static void init() {  if (cm == null) {   cm = new PoolingHttpClientConnectionManager();   cm.setMaxTotal(50);// 整個連接池最大連接數(shù)   cm.setDefaultMaxPerRoute(5);// 每路由最大連接數(shù),默認(rèn)值是2  } } /**  * 通過連接池獲取HttpClient  *   * @return  */ public static CloseableHttpClient getHttpClient() {  init();  return HttpClients.custom().setConnectionManager(cm).build(); } public static String httpGetRequest(String url) {  HttpGet httpGet = new HttpGet(url);  return getResult(httpGet); } public static String httpGetRequest(String url, Map<String, Object> params) throws URISyntaxException {  URIBuilder ub = new URIBuilder();  ub.setPath(url);  ArrayList<NameValuePair> pairs = covertParams2NVPS(params);  ub.setParameters(pairs);  HttpGet httpGet = new HttpGet(ub.build());    return getResult(httpGet); } public static String httpGetRequest(String url, Map<String, Object> headers, Map<String, Object> params)   throws URISyntaxException {  URIBuilder ub = new URIBuilder();  ub.setPath(url);  ArrayList<NameValuePair> pairs = covertParams2NVPS(params);  ub.setParameters(pairs);  HttpGet httpGet = new HttpGet(ub.build());  for (Map.Entry<String, Object> param : headers.entrySet()) {   httpGet.addHeader(param.getKey(), String.valueOf(param.getValue()));  }  return getResult(httpGet); } public static String httpPostRequest(String url) {  HttpPost httpPost = new HttpPost(url);  return getResult(httpPost); } public static String httpPostRequest(String url, Map<String, Object> params) throws UnsupportedEncodingException {  HttpPost httpPost = new HttpPost(url);  ArrayList<NameValuePair> pairs = covertParams2NVPS(params);  httpPost.setEntity(new UrlEncodedFormEntity(pairs, UTF_8));  return getResult(httpPost); } public static String httpPostRequest(String url, Map<String, Object> headers, Map<String, Object> params)   throws UnsupportedEncodingException {  HttpPost httpPost = new HttpPost(url);  for (Map.Entry<String, Object> param : headers.entrySet()) {   httpPost.addHeader(param.getKey(), String.valueOf(param.getValue()));  }  ArrayList<NameValuePair> pairs = covertParams2NVPS(params);  httpPost.setEntity(new UrlEncodedFormEntity(pairs, UTF_8));  return getResult(httpPost); } public static String httpPostRequest(String url, Map<String, Object> headers, String strBody)   throws Exception {  HttpPost httpPost = new HttpPost(url);  for (Map.Entry<String, Object> param : headers.entrySet()) {   httpPost.addHeader(param.getKey(), String.valueOf(param.getValue()));  }  httpPost.setEntity(new StringEntity(strBody, UTF_8));  return getResult(httpPost); }  private static ArrayList<NameValuePair> covertParams2NVPS(Map<String, Object> params) {  ArrayList<NameValuePair> pairs = new ArrayList<NameValuePair>();  for (Map.Entry<String, Object> param : params.entrySet()) {   pairs.add(new BasicNameValuePair(param.getKey(), String.valueOf(param.getValue())));  }  return pairs; } /**  * 處理Http請求  *   * setConnectTimeout:設(shè)置連接超時時間,單位毫秒。  * setConnectionRequestTimeout:設(shè)置從connect Manager獲取Connection 超時時間,單位毫秒。這個屬性是新加的屬性,因?yàn)槟壳鞍姹臼强梢怨蚕磉B接池的。  * setSocketTimeout:請求獲取數(shù)據(jù)的超時時間,單位毫秒。 如果訪問一個接口,多少時間內(nèi)無法返回數(shù)據(jù),就直接放棄此次調(diào)用。  *   * @param request  * @return  */ private static String getResult(HttpRequestBase request) {    RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(60000)    .setConnectionRequestTimeout(5000).setSocketTimeout(60000).build();  request.setConfig(requestConfig);// 設(shè)置請求和傳輸超時時間  // CloseableHttpClient httpClient = HttpClients.createDefault();  CloseableHttpClient httpClient = getHttpClient();  try {   CloseableHttpResponse response = httpClient.execute(request); //執(zhí)行請求   // response.getStatusLine().getStatusCode();   HttpEntity entity = response.getEntity();   if (entity != null) {    // long len = entity.getContentLength();// -1 表示長度未知    String result = EntityUtils.toString(entity);    response.close();    // httpClient.close();    return result;   }  } catch (ClientProtocolException e) {   logger.error("[maperror] HttpClientUtil ClientProtocolException : " + e.getMessage());   throw new MapException(CodeConstant.CODE_CONNECT_FAIL, "HttpClientUtil ClientProtocolException :" + e.getMessage());  } catch (IOException e) {   logger.error("[maperror] HttpClientUtil IOException : " + e.getMessage());   throw new MapException(CodeConstant.CODE_CONNECT_FAIL, "HttpClientUtil IOException :" + e.getMessage());  } finally {  }  return EMPTY_STR; }}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 资中县| 成安县| 板桥市| 贡嘎县| 青海省| 湘潭县| 织金县| 兰考县| 英德市| 商南县| 三门县| 河池市| 海淀区| 长沙县| 油尖旺区| 安国市| 乾安县| 九寨沟县| 罗田县| 烟台市| 双城市| 开远市| 铁力市| 普定县| 扎赉特旗| 奉节县| 白城市| 五大连池市| 石泉县| 凌海市| 钟山县| 大竹县| 洛隆县| 马山县| 桃江县| 浦城县| 绥江县| 牙克石市| 兖州市| 平安县| 金山区|