spring boot单元测试之RestTemplate(二)
2024-08-31 22:05:19
上篇博客中,简单介绍了RestTemplate,只是用到了单元测试环节,如果在正式开发环境使用RestTemplate调用远程接口,还有一些配置要做。
一、配置类
由于Spring boot没有对RestTemplate做自动配置,所以我们需要写一个配置类引入RestTemplate。
@Configuration
public class RestTemplateConfig {
@Bean
public RestTemplate restTemplate(ClientHttpRequestFactory factory) {
return new RestTemplate(factory);
} @Bean
public ClientHttpRequestFactory simpleClientHttpRequestFactory() {
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
factory.setReadTimeout(5000);//单位为ms
factory.setConnectTimeout(5000);//单位为ms
return factory;
}
}
二、工具类
在实际开发过程中,可能对于调用远程接口有多种参数情况,因此写了一个工具类用来支持。
RestTemplate功能非常强大,Post请求的时候特别要注意,body参数必须为MultiValueMap类型。
@Service
public class RestTemplateService {
@Autowired
private RestTemplate restTemplate; /**
* 实测可用
*/
public JSONObject doGet(String url) {
JSONObject json = restTemplate.getForEntity(url, JSONObject.class).getBody();
return json;
} /**
* 实测可用
*/
public JSONObject doGet(String url, HttpHeaders headers) {
HttpEntity<String> entity = new HttpEntity<>(null, headers);
ResponseEntity<JSONObject> exchange = restTemplate.exchange(url, HttpMethod.GET, entity, JSONObject.class);
return exchange.getBody();
} /**
* 实测可用,body参数必须为MultiValueMap类型
*/
public JSONObject doPost(String url, MultiValueMap<String, Object> param) {
JSONObject json = restTemplate.postForEntity(url, param, JSONObject.class).getBody();
return json;
} /**
* 实测可用,body参数必须为MultiValueMap类型
*/
public JSONObject doPost(String url, MultiValueMap<String, Object> params, HttpHeaders headers) {
JSONObject json = restTemplate.postForObject(url, new HttpEntity<>(params, headers), JSONObject.class);
return json;
} }
最新文章
- jquery mobile 图片自适应问题
- Ubuntu下安装Java环境
- SecureCrt设置字符编码
- iOS 自定义进度条
- DevExpress GridControl使用方法总结(转)
- JVM相关问答
- Objective-c Category(类别)
- Raphaël—JavaScript Library
- C# C++ Java接口类型转换
- Bootstrap 使用清单组组件创建价格表
- redis intset(整数集合)
- Linux多线程实践(7) --多线程排序对比
- input框限制只能输入正整数、字母、小数、汉字
- 一次有趣的ant-design与后端数据交互的使用
- 强大的shell(一键redis,mysql,php,openresty,jdk)
- IntelliJ IDEA配置Tomcat(完整版教程)
- dialog弹层背景overlayer实现的方式
- C#通过Oracle.ManagedDataAccess无法访问Oralce
- java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList
- QTextCodec 类
热门文章
- Method for training dynamic random access memory (DRAM) controller timing delays
- On-demand diverse path computation for limited visibility computer networks
- Winsock出错引起的断网
- Windows Container 和 Docker
- Android--数据持久化存储概述
- 简明Python3教程 14.输入输出
- 使用WPF实现3D场景[二]
- PAMIE- Python实现IE自动化的模块
- 如何将任意文件固定在 Win10 的开始屏幕中
- OnNavigatedTo 和 Loaded 的比较