Java 调用接口工具类并设置请求和传输超时时间
废话不多说直接上代码
/*** 接口调用工具类* @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 调用接口工具类并设置请求和传输超时时间相关推荐
- Java使用hutool工具类发送http请求
Java使用hutool工具类发送网络请求 引入jar包 pom.xml添加以下hutool依赖 <dependency><groupId>cn.hutool</grou ...
- 调用招商银行接口(手把手教程,附调用接口工具类)
手把手教你调用招商银行接口 一.下载示例代码 二.申请测试环境.或者生产环境加入到示例代码 三.调用招商银行接口参数拼装 四.调用接口测试 五.最后,贴上我自己改造过的工具类 1.这是获取银行环境参数 ...
- Prometheus:Java调用PromQL工具类(瞬时数据查询)
目录 PostMan瞬时数据查询:Windows主机空闲内存量 请求 响应数据 Java:调用PromQL工具类(瞬时数据查询) Prometheus返回结果反序列化 Prometheus常用Prom ...
- java 反射 接口工具类_Java 反射工具类 ReflectionUtils
import lombok.extern.slf4j.Slf4j; import java.lang.reflect.*; /** * 反射的 Utils 函数集合 * 提供访问私有变量, 获取泛型类 ...
- Java封装redis工具类RedisUtils,以及在@Postconstruct注解中调用redis可能出现redisTemplate空指针异常
1.封装redis工具类RedisUtils import org.springframework.data.redis.core.RedisTemplate; import org.springfr ...
- 如何调用封装工具类调用网上接口查询工作日
如何调用封装工具类调用网上接口查询工作日 这里的编辑器是STS,用的springboot集成环境: 先引进pom.xml依赖包 <?xml version="1.0" enc ...
- 快递100查询接口工具类
1.快递物流信息是具有实效性,丰网有效期1个月 其它3个月,超过时效性无法查看,需要根据业务情况是否需要保存到数据库中. 2.查询快递物流信息需要填写手机号的快递公司有:顺丰速运("shun ...
- Java封装OkHttp3工具类
点击关注公众号,Java干货及时送达 作者:如漩涡 https://blog.csdn.net/m0_37701381 Java封装OkHttp3工具类,适用于Java后端开发者 说实在话,用过挺多 ...
- java轻量级并行工具类_16 个超级实用的 Java 工具类
原标题:16 个超级实用的 Java 工具类 源 /juejin 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名, ...
最新文章
- pid调节软件_科学or艺术?——如何优化PID回路以实现最优性能
- vim的介绍与常用的命令
- 小学数学加减法测试软件,小学生数学加减测试题
- C语言ASM汇编内嵌语法【转】
- linux下can调试工具canutils安装过程记录
- L1-019. 谁先倒-PAT团体程序设计天梯赛GPLT
- Chrome OS 开发者版现可备份和恢复 Linux 容器
- Javascript 第五章总结:A trip to Objectville
- Linux中阶知识总结
- Atitit linux获取项目运行环境版本
- 凸优化第四章凸优化问题 4.4二次优化问题
- 41款非常有创意的卡通图标大全可爱
- 8080端口被占用如何杀掉进程
- android 更新相册,Android 图片存入系统相册更新显示实例详解
- web前端基础案例-开发QQ空间旋转时光轴
- Shiro自定义Ream
- GIS原理与技术-平时作业
- jstack 命令的使用和问题排查分析思路
- 理解sparse coding
- java 音频格式_java – 音频格式的转换
热门文章
- pr如何处理音效_学视频剪辑 PR通关教学课程 教程
- pq 中m函数判断嵌套_Python中numpy的布尔判断、切片、维度变化、合并、通用函数...
- mysql data目录 说明_mysql 更改数据目录
- 前端获取后端传来的session_java后台如何获取,前台传来的表单数据
- android7.1开机监听广播,Android7.1 Audio Debug相关方法
- tf keras Dense源码解析
- mac brew重装apache_记一次 Mac 安装 Pygame 报错的故事 -- 手把手系列~
- 诸葛io的技术架构图_【总结】MySQL技术内幕二:InnoDB存储引擎技术特性
- java控制器接收请求参数_SpringMVC之接收请求参数和页面传参
- k8s服务器修改ip,[转载][K8S] Kubernetes 集群变更IP地址