首页 > 其他分享 >spring之RestTemplate使用

spring之RestTemplate使用

时间:2023-08-17 15:46:27浏览次数:34  
标签:HttpEntity String url spring RestTemplate param api 使用 new

1、带有头部信息的get请求

//api访问链接
String host = aliWuliuConfig.getHost();
//API访问后缀
String path = aliWuliuConfig.getPath()+"?type={type}&no={no}";
String url = host + path;
//替换成自己的阿里云appcode
String appcode = aliWuliuConfig.getAppcode();
//headers
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.add("Authorization", "APPCODE " + appcode);
//body
Map<String, Object> requestBody = new HashMap<String, Object>();
requestBody.put("no", no);
requestBody.put("type",kdnCode);
//HttpEntity
HttpEntity<MultiValueMap> requestEntity = new HttpEntity<>(null, requestHeaders);
//请求
ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, requestEntity, String.class, requestBody);

2、带有头部信息的为post请求 

HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
 
MultiValueMap<String, String> map= new LinkedMultiValueMap<String, String>();
map.add("email", "[email protected]");
 
HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<MultiValueMap<String, String>>(map, headers);
 
ResponseEntity<String> response = restTemplate.postForEntity( url, request , String.class );

 

3、普通get请求 

String url = pmsServiceConfig.getDomainWithProtocol() + "/api/java_api/getLogistics";
try {
    Map<String, String> param = new HashMap<>(1);
    JSONObject res = restTemplate.postForEntity(url, param, JSONObject.class).getBody();
    if (res.getInteger("code") <= 0) {
        throw BusinessException.of(ErrorMsgEnum.E6);
    }
    return res.getJSONArray("data").toJavaList(LogisticsInfo.class);
} catch (HttpClientErrorException e) {
    log.error("pms调用失败:", e);
    throw BusinessException.of(ErrorMsgEnum.E6);
}

 

4、普通post请求

String url = pmsServiceConfig.getDomainWithProtocol() + "/api/java_api/web_list";
Map<String, Object> param = new HashMap<>(1);
param.put("uids", uidList);
try {
    JSONObject res = restTemplate.postForEntity(url, param, JSONObject.class).getBody();
    if (res.getInteger("code") <= 0) {
        throw BusinessException.of(ErrorMsgEnum.E6);
    }
    return res.getJSONArray("data").toJavaList(PMSUserWebInfo.class);

} catch (HttpClientErrorException e) {
    log.error("pms调用失败:", e);
    throw BusinessException.of(ErrorMsgEnum.E6);
}

 

标签:HttpEntity,String,url,spring,RestTemplate,param,api,使用,new
From: https://www.cnblogs.com/anquing/p/17637776.html

相关文章

  • Flyway 使用流程(简单使用)
    官网: https://flywaydb.org/documentation/api/Flyway 是一款开源的数据库版本管理工具。它可以很方便的在命令行中使用,或者在Java应用程序中引入,用于管理我们的数据库版本。在项目或产品中,很难一开始就把业务理清楚,把数据库表设计好,因此数据表也会在迭代周期不断迭代。在Java应......
  • vscode使用巧技
    1.快捷键展开折叠代码:ctrl+shift+[ctrl+shift+]ctrl+shift+L--同时选中所有相容内容alt+click--同时选择多个单词f2--重命名文件alt+上下键--移动整行或多行1.1vetur--让.vue文件高亮和有语法提示VueVsCodesnippets--快捷写代码2.文件图标库--必备vsco......
  • 如何在Linux系统上查看CPU使用率?
    Linux是一种开源操作系统,也被广泛应用于服务器和嵌入式设备上,那么作为一个服务器操作系统,监控系统资源的使用情况是非常重要的,那么该如何在Linux系统上查看CPU使用率呢?以下是详细的内容:1.使用top命令top命令是一个常用的Linux系统监控命令,可以实时查看系统的进程和资......
  • spring缓存使用
    参考文献https://www.cnblogs.com/fashflying/p/6908028.html如有侵权,请联系删除 一、配置:1.依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId></dependency>2.bean注入......
  • IDEA社区版+SpringBoot+MyBatisPLus+MySQL实现数据库的保存、查询、修改操作
    一、概述使用IDEA社区+SpringBoot+MyBatisPlus+MySQL实现数据的保存修改与查询。主要记录一下踩坑过程。注意事项:1.社区版IDEA并不能直接创建SpringBoot工程,所以我采用的方式是在Spring官网上,让其帮助我创建一个,创建好后,直接下载。//参考案例https://blog.csd......
  • BOSHIDA DC电源模块使用可靠电容的重要性
    BOSHIDADC电源模块使用可靠电容的重要性现今,DC电源模块已成为许多电子设备的核心零部件。在各种设备中,电源模块扮演着将交流电转换为直流电的重要角色。而在电源模块中,电容作为重要的电子元件之一,可以起到储能滤波、干扰抑制、稳压、耦合等作用。因此,使用可靠电容在DC电源模块中......
  • 使用NineData实现亿级别MySQL大表迁移
    MySQL作为当前应用最广泛的开源关系型数据库之一,具有高性能、稳定性和易用性等特性,是许多网站、应用和商业产品的主要数据存储。在一些场景中,如果出现单表行数上亿的情况,就可能需要开发和DBA对大表进行优化:分表、归档或扩容操作,而在这些操作中都涉及了对数据的迁移。所以,提供高......
  • 使用C#创建安装Windows服务程序(最全教程)
    开发语言:C#开发环境:VisualStudio2022微软官方文档:https://learn.microsoft.com/zh-cn/dotnet/framework/windows-services/最近在公司要求使用Windows服务作为消息队列的消费者,所以自行研究了一下C#中Windows服务如何创建以及如何使用,以及部署的方式。我是西瓜程序猿,此篇......
  • 云原生之使用Docker部署webos私有云盘
    (云原生之使用Docker部署webos私有云盘)一、webos介绍1.webos简介WebOS是一个支持多种存储,云端存储&协同办公新体验:如Windows11体验的私有云盘/企业网盘。完全支持私有化部署,存储安全可控、数百种文件格式在线预览、编辑和播放、轻松分享。高效协作,细粒度权限管控全平台客户端......
  • 【13章】SpringBoot打造企业级一体化SaaS系统
    课程下载——【13章】SpringBoot打造企业级一体化SaaS系统提取码:y8v1 分享课程——【13章】SpringBoot打造企业级一体化SaaS系统,附源码。课程中整合后端主流技术(SpringBoot、物理数据库隔离、加载动态权限、多方式权限控制)、前端必会框架(vue3),完整落地ERP+CRM一体化SaaS系统,带......