HttpUtils请求工具类
生活随笔
收集整理的這篇文章主要介紹了
HttpUtils请求工具类
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
HttpUtils請(qǐ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.ContentType; 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;/*** @author mxl* @version 1.0* 2021/1/28 下午7:23**/ 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);// 整個(gè)連接池最大連接數(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);}public static String httpPostRequest(String url, String strBody)throws Exception {HttpPost httpPost = new HttpPost(url);StringEntity stringEntity = new StringEntity(strBody, ContentType.APPLICATION_JSON);httpPost.setEntity(stringEntity);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;}private static String getResult(HttpRequestBase request) {RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(60000).setConnectionRequestTimeout(5000).setSocketTimeout(60000).build();request.setConfig(requestConfig);// 設(shè)置請(qǐng)求和傳輸超時(shí)時(shí)間// CloseableHttpClient httpClient = HttpClients.createDefault();CloseableHttpClient httpClient = getHttpClient();try {CloseableHttpResponse response = httpClient.execute(request); //執(zhí)行請(qǐng)求// 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());} catch (IOException e) {logger.error("[maperror] HttpClientUtil IOException : " + e.getMessage());} finally {}return EMPTY_STR;} }?
總結(jié)
以上是生活随笔為你收集整理的HttpUtils请求工具类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js读取excel文件
- 下一篇: 2020年副业推荐,介绍网络兼职的文章