java Rest工具类封装

从Postman调试到Java集成:一步步搞定iServer REST API文件上传与服务发布 本文详细介绍了如何从Postman调试到Java集成,一步步实现iServer REST API文件上传与服务发布的全流程。通过具体示例和常见问题解决方案,帮助开发者高效完成SuperMap iServer的API调用与集成,特别针对Postman调试成功但Java代码报错的场景提供了优化方案。 阅读详情

@Slf4j
public class RestTmpBaseServiceImpl {
    @Autowired
    public RestTemplate restTemplate;


    public HttpHeaders buildHeader(){
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);
        headers.set("Authorization","Bearer "+"token");
        return headers;
    }


    public HttpEntity<Map<String,Object>> buildHttpRequest(Map<String, Object> body){
        HttpEntity<Map<String,Object>> request = new HttpEntity<>(body, buildHeader());
        return request;
    }

    public  ResponseEntity<Map> buildPostForMapEntity(String url,Map<String,Object> body){
        try{
            HttpEntity<Map<String,Object>> request = buildHttpRequest(body);
            
            log.info("请求地址:"+url);
            log.info(("请求参数:"+ JSONObject.toJSONString(body)));
            ResponseEntity<Map> response = restTemplate.postForEntity(url, request, Map.class);
            log.info(("请求返回值:"+ JSONObject.toJSONString(response.getBody())));
            return response;
        }catch (Exception e){
            e.printStackTrace();
            log.error(("请求异常"+e.getMessage()));
            return null;
        }

    }

    public  ResponseEntity<String>  buildPostForString(String url,Map<String,Object> body){
        return buildPostForStringByUrl(url,body);
    }

    public  ResponseEntity<String>  buildPostForStringByUrl(String url,Map<String,Object> body){
        try{
            HttpEntity<Map<String,Object>> request = buildHttpRequest(body);
            String reqUrl = url;
            log.info("请求地址:"+reqUrl);
            log.info(("请求参数:"+ JSONObject.toJSONString(body)));
            ResponseEntity<String> response = restTemplate.postForEntity(reqUrl, request, String.class);
            log.info("请求返回值:"+ response.getBody());
            return response;
        }catch (Exception e){
            e.printStackTrace();
            log.error(("请求异常"+e.getMessage()));
            return null;
        }
    }

    public  Map buildPostForMap(String url,Map<String,Object> body){
        ResponseEntity<Map> response = buildPostForMapEntity(url,body);
        return response.getBody();
    }

    public JSONObject buildPostForJsonObject(String url,Map<String,Object> body){
        log.info("请求地址:"+url);
        log.info("请求参数:"+JSONObject.toJSONString(body));
        ResponseEntity<String> response = buildPostForString(url,body);
        return JSONObject.parseObject(response.getBody());
    }

    public JSONObject buildPostForJsonObjectByUrl(String url,Map<String,Object> body){
        log.info("请求地址:"+url);
        log.info("请求参数:"+JSONObject.toJSONString(body));
        ResponseEntity<String> response = buildPostForStringByUrl(url,body);
        return JSONObject.parseObject(response.getBody());
    }


    public  ResponseEntity<Map> buildGetBodyForMap(String url,Map<String,Object> params){
        try{
            HttpHeaders headers = buildHeader();
            HttpEntity<String> entity = new HttpEntity<>(JSONObject.toJSONString(params),headers);
            ResponseEntity<Map> response = restTemplate.exchange(url, HttpMethod.GET, entity,  Map.class);
            log.info(("请求返回值:"+ JSONObject.toJSONString(response)));
            return response;
        }catch (Exception e){
            e.printStackTrace();
            log.error(("请求异常"+e.getMessage()));
            return null;
        }

    }

    public  ResponseEntity<Map> buildGetForMap(String url,Map<String,Object> params){
        try{

            HttpHeaders headers = buildHeader();
            UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url);
            for (Map.Entry<String, Object> entry : params.entrySet()) {
                builder.queryParam(entry.getKey(), entry.getValue());
            }

            String reqUrl = builder.toUriString();

            log.info("请求地址:"+reqUrl);

            HttpEntity<String> entity = new HttpEntity<>(headers);
            ResponseEntity<Map> response = restTemplate.exchange(reqUrl, HttpMethod.GET, entity,  Map.class);
            log.info(("请求返回值:"+ JSONObject.toJSONString(response)));
            return response;
        }catch (Exception e){
            e.printStackTrace();
            log.error(("请求异常"+e.getMessage()));
            return null;
        }

    }

    public  ResponseEntity<Map> buildGetForMap(String url){
        try{
            log.info("请求地址:"+url);
            HttpHeaders headers = buildHeader();
            HttpEntity<String> entity = new HttpEntity<>(headers);
            ResponseEntity<Map> response = restTemplate.exchange(url, HttpMethod.GET, entity,  Map.class);
            log.info(("请求返回值:"+ JSONObject.toJSONString(response)));
            return response;
        }catch (Exception e){
            e.printStackTrace();
            log.error(("请求异常"+e.getMessage()));
            return null;
        }

    }

    public  ResponseEntity<Map> buildPutForMap(String url){
        try{
            log.info("请求地址:"+url);
            HttpHeaders headers = buildHeader();
            HttpEntity<String> entity = new HttpEntity<>(headers);
            ResponseEntity<Map> response = restTemplate.exchange(url, HttpMethod.PUT, entity,  Map.class);
            log.info(("请求返回值:"+ JSONObject.toJSONString(response)));
            return response;
        }catch (Exception e){
            e.printStackTrace();
            log.error(("请求异常"+e.getMessage()));
            return null;
        }

    }

    public  ResponseEntity<Map> buildPutForMapEntity(String url,Map<String,Object> body){
        try{
            HttpEntity<Map<String,Object>> request = buildHttpRequest(body);
            log.info("请求地址:"+url);
            log.info(("请求参数:"+ JSONObject.toJSONString(body)));
            ResponseEntity<Map> response = restTemplate.postForEntity(url, request, Map.class);
            log.info(("请求返回值:"+ JSONObject.toJSONString(response.getBody())));
            return response;
        }catch (Exception e){
            e.printStackTrace();
            log.error(("请求异常"+e.getMessage()));
            return null;
        }

    }


}

springboot集成elasticsearch 8.0以上版本 现在的elasticsearch已经更新到8.2版本,网络上的学习资料基本都是8.0以下的版本。elasticsearch官方在8.0版本以后,已经舍弃了High level rest clint Api,推荐使用java clint api。所以再参照8.0以下版本的资料进行学习已经非常不适合。依据如下图1-1: 图1-1 由于本人在学习过程中,查找网上学习资料都是8.0以下的资料,许多地方都不适用,非常痛苦。所以在此记录本人在学习过程中的知识,以便后面学习8.0以上... 阅读详情

相关推荐

elasticsearch 基础 —— Java High Level REST相关操作封装

 pox.xml文件添加以下内容 &lt;dependency&gt; &lt;groupId&gt;org.elasticsearch.client&lt;/groupId&gt; &lt;artifactId&gt;elasticsearch-rest-high-level-client&lt;/artifactId&gt; &lt;version&gt;6.3.2...

gmHappy 5564

RestTemplate调用第三方接口封装工具类

RestTemplate封装工具类

jilei_my的博客 2464

Java通用restful返回工具类

通用restful返回工具类

Java RestTemplate中几种常见的请求方式

在REST接口的设计中,利用RestTemplate进行接口测试是种常见的方法。本文主要从以下四个方面来看RestTemplate的使用: GET请求 POST请求 PUT请求 DELETE请求 OK,开始吧。 1. 用exchange方法提交 exchange既可以执行POST方法,还可以执行GET,设置header,所以应用最为广泛。 String url = "http://localhost/mirana-ee/app/login"; RestTemplate client = ne

hudeyong926的专栏 1万+

Camera 基础知识

Raw Sensor输出的Data格式为Raw,图像的效果处理使用BB端的ISP,BB端接收Raw data后进行一系列的图像处理(OB,Shading,AWB,Gamma,EE,ANR等),效果方面由BB端控制,需要针对不同的模组进行效果调试,Raw sensor是目前的主流,数据量比YUV Sensor小(RAW10 格式的sensor 1个pixel 10个bit)使用平台ISP处理,能支持较大的size。不过,相位对焦并不是那么完美,它对光线的要求就比较高,在弱光拍摄环境下,相位对焦就无能威力了。

手机-手表蓝牙开发工程师的博客 3064

point transformer v3结构

分割结构: embedding->enc->dec embedding->enc0->enc1->enc2->enc3->enc4->dec3->dec2->dec1->dec0 embedding ->block0->block1 ->dow->block0->block1 ->dow->block0->block1 ->dow->block0->block1-&gt

weixin_45625419的博客 582

Java调用REST接口(get,post请求方法)

网上的调用方法实例千奇百怪,以下为本人自己整理的Java调用rest接口方法实例,包含get请求和post请求,可创建工具类方便调用,其中post请求解决了入出参中文乱码问题。 get方式请求 //get方式请求 public String restCallerGet(String path, String param) { //path 接口路径 xxx/xxx/xxx //param 入参 ?xxx=x&xxx=x&xxx=x //接口ip String http

瑶少的博客 1万+

ArcMap 10.7/10.8启动加载界面后闪退?可能是这个隐藏的Normal.mxt模板文件在搞鬼

本文深入分析了ArcMap 10.7/10.8启动加载界面后闪退的问题,指出Normal.mxt模板文件损坏是常见原因。提供了从定位、删除模板文件到系统级修复的完整解决方案,帮助GIS工程师快速恢复工作流程。

weixin_28523493的博客 331

JAVA WEB开发中REST接口统一返回数据工具类封装

在JAVA WEB项目开发过程中,统一的API数据返回很常见,这里总结一下Rest接口里统一的API数据返回格式和Rpc接口里统一的API数据返回格式。

Thinkingcao的专栏 4142

快速了解GPU分布通信技术:PCIe、NVLink与NVSwitch

PCIe(Peripheral Component Interconnect Express)是一种高速串行计算机扩展总线标准,广泛用于连接计算机的各种硬件设备。PCIe4.0是目前较为先进的版本,提供了高达64GB/s的带宽。InfiniBand是一种用于高性能计算的高速互连技术,通过交换机在节点之间直接创建一个专用的受保护通道。InfiniBand适配器通过PCIe接口连接到CPU,另一端通过InfiniBand网络端口连接到InfiniBand子网。

全世界的博客 7544

【深大计算机网络】实验三 可靠传输机制 实验报告 附代码

【内附代码】【深大计算机网络】实验三 可靠传输机制 实验报告 附代码

m0_74268508的博客 1654

java调用GET\POST发送GET/POST请求的工具类

写在前面 很多时候我们需要去调用或者发送请求访问java的rest接口,这时候一般我们项目组会添加相对应的工具类进行封装,不用每次都去重新写一次,类似于java的jdbc,我们如果使用mabits时候,框架已经为我们封装好相关的代码,这也是java面向对象的编程思想的体现,这里就没太多的文字概述啦~~ 直接上代码,有需要的小伙伴可以直接复制到自己的工具类中使用哦 改工具类名称:RestUtil.j...

zhangbinch的博客 818

反激电源反馈环路设计:从TL431+PC817原理到动态补偿实战

本文深入解析了反激电源中由TL431和PC817构成的经典反馈环路设计。从静态工作点计算到动态补偿实战,详细阐述了如何通过Type II补偿网络优化环路稳定性与动态响应,并分享了应对光耦CTR离散性、布局噪声等常见调试难题的实用技巧,帮助工程师设计出高性能、高可靠的开关电源。

moon9的博客 702

【Java基础语法】多个对象合并成一个对象返回案例(57)

1.多个对象合并成一个对象返回

qq_42139049的博客 1078

YOLOv11改进策略【注意力机制篇】| SE、CBAM、ECA、CA、Swin Transformer等注意力机制全面解析与应用

本文详细介绍了五种主流的注意力机制及其在YOLOv11中的应用。通过合理的模块选择和位置部署,注意力机制能够显著提升目标检测性能。

QQ_778132974的博客 877

Unreal 从入门到精通之VR常用操作

本文总结了使用Unreal5开发VR项目时遇到的常见问题及其解决方案。首先,介绍了如何通过VRPawn的TryTeleport函数设置玩家视角位置,确保头显移动时安全区域的正确传送。其次,详细说明了如何在Unreal中播放视频,包括导入视频文件、创建媒体播放器和媒体纹理,并将其应用到3D物体上。接着,讲解了如何播放VR全景视频,建议使用MediaPlate媒体板并调整几何体为球体。最后,讨论了如何手动打开和关闭VR模式,以便在PC模式和头显模式之间切换。这些方法为VR开发提供了实用的技术指导。

TxNet 952

REST接口封装统一返回数据工具类

/** * REST接口封装统一返回数据工具类 */ public class Result { /** * 响应状态码 */ private Integer code; /** * 响应成功与否 */ private boolean success; /** * 响应消息 */ private String msg; /** * 响应数据 */ pr...

BestEternity的博客 635

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Utils-HttpsClientUtil

一、http封装工具类 忽略证书https请求 支持rest风格请求与传参 支持header请求头封装 支持Query与HttpEntity传参 maven依赖 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpmime</artifactId> <version>4.5.9</ver

scdncby的博客 698

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

SpringBoot-ElasticSearch8

前沿 elasticsearch-rest-high-level-client在 7.15.0 中已弃用。 不推荐使用高级 REST 客户端,取而代之的是 Java API 客户端 。 spring-boot-starter-data-elasticsearch 也不推荐,虽然基础操作简化了很多,但是一旦使用了es高级特性,那么就如同进入了地狱 在es官网推荐我们现在使用 Elasticsearch Java API 客户端 Java API 客户端官网地址 elasticsearch Api 操作大全

weixin_45203607的博客 1万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

SpringBoot实战:MinIO API配置与工具类优雅封装

本文通过"依赖引入→配置优化→工具类封装→使用示例"的完整流程,实现了SpringBoot项目中MinIO API的优雅封装。核心思路是通过配置解耦与分层设计,降低代码耦合度,提升可维护性;同时注重敏感信息安全与资源管理,确保工具类在开发与生产环境中都能稳定运行。通过合理的扩展,该工具类可轻松适配不同场景的需求,为项目开发提供高效支持。

weixin_41544125的博客 1099

高可用的java SpringBoot REST 风格API接口结果封装

文章目录1 摘要核心代码2.1 Swagger Maven 依赖2.2 接口返回结果封装2.3 使用说明2.4 Github 源码 1 摘要 REST 风格已经成为 WEB 开发的主流趋势,本文将分享作者自己在项目中使用的java后台 REST API 接口封装类。 核心代码 2.1 Swagger Maven 依赖 Swagger 作为可视化接口测试工具,根据代码自动生成接口文档,方便用户测试,...

Mrqiang9001 2492

springboot接入deepseek深度求索 java

以下是在springboot中接入aideepseek的过程。官网并没有java的示例。

2509_94462131的博客 345

在java中接入百度地图

3,编写配置类BaiduMapProperties,接受配置文件的配置。4,编写写百度地图工具类,BaiduMapUtil.java。2,在配置文件application.yml里面配置。6,暴露MapController 接口给前端。5,编写业务类 MapServiceImpl。1,登录百度地图开放平台,获取ak。

2301_76506734的博客 90

Flyingsaucer与现代Java框架集成:Spring Boot中的PDF报表生成方案

在现代企业级应用开发中,PDF报表生成是一项常见需求。作为纯Java实现的XML/XHTML和CSS 2.1渲染器,Flyingsaucer为开发者提供了强大而灵活的PDF生成能力。本文将详细介绍如何将Flyingsaucer与Spring Boot框架无缝集成,打造高效、美观的PDF报表解决方案。 ## 为什么选择Flyingsaucer? Flyingsaucer(项目路径:gh_mirr

gitblog_01407的博客 405

BEYOND REALITY Z-Image开发实战:使用IntelliJ IDEA进行Java集成

本文介绍了如何在星图GPU平台上自动化部署🌌 BEYOND REALITY Z-Image镜像,实现高效的人像生成应用。通过IntelliJ IDEA进行Java集成,开发者可以快速调用API生成高质量人像图片,适用于电商产品图、社交媒体内容等视觉创作场景,显著提升开发效率。

weixin_32099703的博客 187

java封装一个通用的REST API 返回结果

REST API 返回结果 import com.fasterxml.jackson.annotation.JsonFormat; import com.zwcl.common.models.enums.ExceptionCode; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.experimental.Accessors; import org.apache.commo

chy的博客 740
上一篇: vue异步组件
河马开源
博客等级 码龄14年 103粉丝 117原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

河马开源

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值