废话不多说直接上代码

/*** 接口调用工具类* @Author: MonsterTiny* @Date: 2020-07-23 10:06*/
public class HttpClientUtils {//请求超时时间(毫秒)@Value("${http.connetTimeout}")private int connetTimeout;//传输超时时间(毫秒)@Value("${http.socketTimeout}")private int socketTimeout;/*** 带参数的get请求* * @param url* @param param* @return String*/public String doGet(String url, Map<String, String> param) {// 创建Httpclient对象CloseableHttpClient httpclient = HttpClients.createDefault();String resultString = "";CloseableHttpResponse response = null;try {// 创建uriURIBuilder builder = new URIBuilder(url);if (param != null) {for (String key : param.keySet()) {builder.addParameter(key, param.get(key));}}URI uri = builder.build();// 创建http GET请求HttpGet httpGet = new HttpGet(uri);// 执行请求RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(socketTimeout).setConnectTimeout(connetTimeout).build();//设置请求和传输超时时间httpGet.setConfig(requestConfig);response = httpclient.execute(httpGet);// 判断返回状态是否为200if (response.getStatusLine().getStatusCode() == 200) {resultString = EntityUtils.toString(response.getEntity(), "UTF-8");}} catch (Exception e) {e.printStackTrace();} finally {try {if (response != null) {response.close();}httpclient.close();} catch (IOException e) {e.printStackTrace();}}return resultString;}/*** 不带参数的get请求* * @param url* @return String*/public String doGet(String url) {return doGet(url, null);}/*** 带参数的post请求* * @param url* @param param* @return String*/public String doPost(String url, Map<String, String> param) {// 创建Httpclient对象CloseableHttpClient httpClient = HttpClients.createDefault();CloseableHttpResponse response = null;String resultString = "";try {// 创建Http Post请求HttpPost httpPost = new HttpPost(url);// 创建参数列表if (param != null) {List<NameValuePair> paramList = new ArrayList<>();for (String key : param.keySet()) {paramList.add(new BasicNameValuePair(key, param.get(key)));}// 模拟表单UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList);httpPost.setEntity(entity);}// 执行http请求RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(socketTimeout).setConnectTimeout(connetTimeout).build();//设置请求和传输超时时间httpPost.setConfig(requestConfig);response = httpClient.execute(httpPost);resultString = EntityUtils.toString(response.getEntity(), "utf-8");} catch (Exception e) {e.printStackTrace();} finally {try {response.close();} catch (IOException e) {e.printStackTrace();}}return resultString;}/*** 不带参数的post请求* * @param url* @return String*/public String doPost(String url) {return doPost(url, null);}/*** 传送json类型的post请求* * @param url* @param json* @return String*/public String doPostJson(String url, String json) {// 创建Httpclient对象CloseableHttpClient httpClient = HttpClients.createDefault();CloseableHttpResponse response = null;String resultString = "";try {// 创建Http Post请求HttpPost httpPost = new HttpPost(url);// 创建请求内容StringEntity entity = new StringEntity(json, ContentType.APPLICATION_JSON);httpPost.setEntity(entity);// 执行http请求RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(socketTimeout).setConnectTimeout(connetTimeout).build();//设置请求和传输超时时间httpPost.setConfig(requestConfig);response = httpClient.execute(httpPost);resultString = EntityUtils.toString(response.getEntity(), "utf-8");} catch (Exception e) {e.printStackTrace();} finally {try {response.close();} catch (IOException e) {e.printStackTrace();}}return resultString;}
}

Java 调用接口工具类并设置请求和传输超时时间相关推荐

  1. Java使用hutool工具类发送http请求

    Java使用hutool工具类发送网络请求 引入jar包 pom.xml添加以下hutool依赖 <dependency><groupId>cn.hutool</grou ...

  2. 调用招商银行接口(手把手教程,附调用接口工具类)

    手把手教你调用招商银行接口 一.下载示例代码 二.申请测试环境.或者生产环境加入到示例代码 三.调用招商银行接口参数拼装 四.调用接口测试 五.最后,贴上我自己改造过的工具类 1.这是获取银行环境参数 ...

  3. Prometheus:Java调用PromQL工具类(瞬时数据查询)

    目录 PostMan瞬时数据查询:Windows主机空闲内存量 请求 响应数据 Java:调用PromQL工具类(瞬时数据查询) Prometheus返回结果反序列化 Prometheus常用Prom ...

  4. java 反射 接口工具类_Java 反射工具类 ReflectionUtils

    import lombok.extern.slf4j.Slf4j; import java.lang.reflect.*; /** * 反射的 Utils 函数集合 * 提供访问私有变量, 获取泛型类 ...

  5. Java封装redis工具类RedisUtils,以及在@Postconstruct注解中调用redis可能出现redisTemplate空指针异常

    1.封装redis工具类RedisUtils import org.springframework.data.redis.core.RedisTemplate; import org.springfr ...

  6. 如何调用封装工具类调用网上接口查询工作日

    如何调用封装工具类调用网上接口查询工作日 这里的编辑器是STS,用的springboot集成环境: 先引进pom.xml依赖包 <?xml version="1.0" enc ...

  7. 快递100查询接口工具类

    1.快递物流信息是具有实效性,丰网有效期1个月 其它3个月,超过时效性无法查看,需要根据业务情况是否需要保存到数据库中. 2.查询快递物流信息需要填写手机号的快递公司有:顺丰速运("shun ...

  8. Java封装OkHttp3工具类

    点击关注公众号,Java干货及时送达  作者:如漩涡 https://blog.csdn.net/m0_37701381 Java封装OkHttp3工具类,适用于Java后端开发者 说实在话,用过挺多 ...

  9. java轻量级并行工具类_16 个超级实用的 Java 工具类

    原标题:16 个超级实用的 Java 工具类 源 /juejin 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名, ...

最新文章

  1. pid调节软件_科学or艺术?——如何优化PID回路以实现最优性能
  2. vim的介绍与常用的命令
  3. 小学数学加减法测试软件,小学生数学加减测试题
  4. C语言ASM汇编内嵌语法【转】
  5. linux下can调试工具canutils安装过程记录
  6. L1-019. 谁先倒-PAT团体程序设计天梯赛GPLT
  7. Chrome OS 开发者版现可备份和恢复 Linux 容器
  8. Javascript 第五章总结:A trip to Objectville
  9. Linux中阶知识总结
  10. Atitit linux获取项目运行环境版本
  11. 凸优化第四章凸优化问题 4.4二次优化问题
  12. 41款非常有创意的卡通图标大全可爱
  13. 8080端口被占用如何杀掉进程
  14. android 更新相册,Android 图片存入系统相册更新显示实例详解
  15. web前端基础案例-开发QQ空间旋转时光轴
  16. Shiro自定义Ream
  17. GIS原理与技术-平时作业
  18. jstack 命令的使用和问题排查分析思路
  19. 理解sparse coding
  20. java 音频格式_java – 音频格式的转换

热门文章

  1. pr如何处理音效_学视频剪辑 PR通关教学课程 教程
  2. pq 中m函数判断嵌套_Python中numpy的布尔判断、切片、维度变化、合并、通用函数...
  3. mysql data目录 说明_mysql 更改数据目录
  4. 前端获取后端传来的session_java后台如何获取,前台传来的表单数据
  5. android7.1开机监听广播,Android7.1 Audio Debug相关方法
  6. tf keras Dense源码解析
  7. mac brew重装apache_记一次 Mac 安装 Pygame 报错的故事 -- 手把手系列~
  8. 诸葛io的技术架构图_【总结】MySQL技术内幕二:InnoDB存储引擎技术特性
  9. java控制器接收请求参数_SpringMVC之接收请求参数和页面传参
  10. k8s服务器修改ip,[转载][K8S] Kubernetes 集群变更IP地址