HttpUtils请求

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);// 整个连接池最大连接数cm.setDefaultMaxPerRoute(5);// 每路由最大连接数,默认值是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);// 设置请求和传输超时时间// CloseableHttpClient httpClient = HttpClients.createDefault();CloseableHttpClient httpClient = getHttpClient();try {CloseableHttpResponse response = httpClient.execute(request); //执行请求// 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;}
}

HttpUtils请求工具类相关推荐

  1. Java 常用HTTP请求工具类HttpUtils

    .pom依赖 <!-- httpclient --><dependency><groupId>org.apache.httpcomponents</group ...

  2. HTTP POST 请求工具类

    HTTP/HTTPS POST 请求工具类 Maven pom.xml 引入依赖 <dependency><groupId>org.apache.httpcomponents& ...

  3. 【Http请求工具类】

    Http请求工具类(待优化) 添加相关依赖 <!-- 发送http请求依赖 --><dependency><groupId>commons-io</group ...

  4. .NET WebApi调用微信接口Https请求工具类

    .NET WebApi调用微信接口Https请求工具类 using System; using System.Collections.Generic; using System.IO; using S ...

  5. HTTP请求工具类(POST)

    HTTP请求工具类    POST请求 package com.cuierdan.utils;import org.apache.logging.log4j.LogManager; import or ...

  6. Http请求工具类:Get/Post

    第一种 import com.alibaba.fastjson.JSONObject; import org.apache.http.HttpEntity; import org.apache.htt ...

  7. C#实现的UDP收发请求工具类实例

    本文实例讲述了C#实现的UDP收发请求工具类.分享给大家供大家参考,具体如下: 初始化: ListeningPort = int.Parse(ConfigurationManager.AppSetti ...

  8. 【Java】HTTP请求工具类

    前言 在工作中可能存在要去调用其他项目的接口,这篇文章我们实现在Java代码中实现调用其他项目的接口. 本章内容: 创建一个携带参数的POST请求,去请求其他项目的接口并返回数据. 附加HTTP请求工 ...

  9. http和https请求工具类

    https请求 @Slf4j public class HttpPostUtils {public static int RESPONSE_STATUS_OK = 0;public static JS ...

  10. Java Https请求工具类

    个人技术网站 欢迎关注 由于微信API接口建议使用Https请求方式 而且过不久就废弃http请求方式了 所以提供以下Https工具类 public class SSLClient extends D ...

最新文章

  1. 论防止爆T的重要性:N相关孪生素数
  2. 不连续子网掩码的魅力
  3. 函数名的应用(第一对象) 闭包 装饰器
  4. Android 4.4及以上系统下应用的状态栏颜色渐变效果的实现
  5. 智还王项目中出现的问题和使用的一些方法
  6. dos下载ftp文件linux,在DOS和LINUX下的FTP命令
  7. Qt 使用阿里图标库
  8. Meshlab的基本使用
  9. 【PS图像处理】修改图层中文字图形的颜色
  10. 机器学习二:K均值聚类算法(k-means clustering algorithm)
  11. 小技巧|Cadence安装之后,原理图DSN文件的默认图标不对如何进行修改
  12. 基于JAVA优乐帮育儿系统计算机毕业设计源码+系统+数据库+lw文档+部署
  13. 如何发送电子邮件到别人邮箱?
  14. 核心频率个加速频率_【硬件资讯】AMD:锐龙3系列加速频率再提2%
  15. POI导出execle javaweb
  16. MFC求一元二次方程的根(三种情况:相同根,不同根,虚根)
  17. 华为发布业界首款5G基站芯片:天罡
  18. Python中zip函数的用法
  19. 数据我爬定了,限流也挡不住,我说的
  20. 万维网、因特网、互联网

热门文章

  1. redis 常用配置文件配置
  2. sql插入多条记录_如何在SQL中插入多条记录
  3. 共享单车项目计划书_共享单车众筹项目商业计划书案例
  4. 武汉市房价数据挖掘与可视化分析(Python)
  5. ctf.show wbe 3 wp
  6. android 获取机顶盒ip,在电视机顶盒端查看IP地址 - 零成本让你的电视盒子变身无线路由器...
  7. tomcat8.0安装及配置教程
  8. 第十三届“恩智浦”杯全国大学生智能汽车竞赛-信标对抗组比赛总结
  9. win10定时关机c语言,win10 定时关机命令怎么设置_win10怎么设置定时关机指令-win7之家...
  10. 机器学习项目简历收集册-----机器学习(仅供参考)