http调用HttpURLConnection、RestTemplate

目前有一个需求是需要跨服务调用的,通过后端直接访问,直接通过url访问记录一下,后面更简单的去处理。
首先是最古老的方式HttpURLConnection

public JSONArray sendAuthorization(){JSONObject jsonObject = new JSONObject();jsonObject.put("staffNo","000222");try {// 定义URL和凭据信息String urlString = "http://127.0.0.1:12001/sso/sendPersonAuthorization";// 构建URL对象URL url = new URL(urlString);// 打开连接HttpURLConnection connection = (HttpURLConnection) url.openConnection();// 设置请求方法为POSTconnection.setRequestMethod("POST");// 设置请求头,指定请求体格式为 JSONconnection.setRequestProperty("Content-Type", "application/json");connection.setRequestProperty("Authorization", "Bearer 96228ded-0c64-4ffe-a487-c1ed0c6918bc");// 启用输出流,并将 JSON 请求体写入连接connection.setDoOutput(true);OutputStream os = connection.getOutputStream();os.write(jsonObject.toString().getBytes());os.flush();os.close();// 获取响应码int responseCode = connection.getResponseCode();System.out.println("Response Code: " + responseCode);// 读取响应内容BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));String inputLine;StringBuffer response = new StringBuffer();while ((inputLine = in.readLine()) != null) {response.append(inputLine);}in.close();JSONArray jsonObject1 = JSONArray.parseArray(response.toString());return jsonObject1;// 打印响应内容} catch (Exception e) {e.printStackTrace();}return null;}

处理方式相当古老了,但是别说好用还。
新的方式RestTemplate

 @PostMapping("/sendPersonAuthorization")public List<TokenVO> sendPersonAuthorization() {// 请求URLString url = "http://127.0.0.1:12001/login";// 请求参数HashMap<String, String> params = new HashMap<>();params.put("ticket", Sm2Encryptor.encryptString("mima"));params.put("captcha", "123");params.put("token", "123");// HTTP头HttpHeaders headers = new HttpHeaders();headers.setContentType(MediaType.APPLICATION_JSON_UTF8); // 设置Content-Type为application/x-www-form-urlencodedheaders.set("Clientid", "bVS46ElU"); // 设置自定义HTTP头HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<>(null, headers);RestTemplate restTemplate = new RestTemplate();// 查询所有生效的用户List<LoginUserDetailVO> voList = basePortaluserMapper.findUserInfoList();return voList.stream().map(vo -> {params.put("per", Sm2Encryptor.encryptString(vo.getUsername()));// 构建带查询参数的完整URLUriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url);for (Map.Entry<String, String> entry : params.entrySet()) {builder.queryParam(entry.getKey(), entry.getValue());}String urlWithParams = builder.toUriString();ResponseEntity<String> response = restTemplate.exchange(urlWithParams, HttpMethod.POST, requestEntity, String.class);String token = "Bearer " + ((JSONObject) JSON.parseObject(response.getBody()).get("data")).get("value");TokenVO tokenVO = new TokenVO();BeanUtils.copyProperties(vo, tokenVO);tokenVO.setToken(token);return tokenVO;}).collect(Collectors.toList());}

使用RestTemplate 方式去进行访问,使用Stream流进行返回

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/821138.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于ubuntu22.04系统安装nvidia A100驱动与NVLink启用

1、官方仓库 针对驱动包下载认准nvidia官网 dpkg -i nvidia-driver-local-repo-ubuntu2204-550.54.15_1.0-1_amd64.deb apt update apt search nvidia-driver-5502、安装 根据步骤1apt search nvidia-driver-550查出版本&#xff1a;此驱动包封在nvidia-driver-local-repo-ub…

Github 2024-04-13 Rust开源项目日报Top10

根据Github Trendings的统计,今日(2024-04-13统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Rust项目10CUE项目1Go项目1Tauri: 构建小型、快速和安全的桌面应用程序 创建周期:1673 天开发语言:Rust协议类型:Apache License 2.0Star数量…

Qt | 事件第二节

Qt | 事件第一节书接上回 四、事件的接受和忽略 1、事件可以被接受或忽略,被接受的事件不会再传递给其他对象,被忽略的事件会被传递给其他对象处理,或者该事件被丢弃(即没有对象处理该事件) 2、使用 QEvent::accept()函数表示接受一个事件,使用 QEvent::ignore()函数表示…

PandasTA 源码解析(八)

.\pandas-ta\pandas_ta\momentum\__init__.py # 设置文件编码为 UTF-8 # 导入 ao 指标 from .ao import ao # 导入 apo 指标 from .apo import apo # 导入 bias 指标 from .bias import bias # 导入 bop 指标 from .bop import bop # 导入 brar 指标 from .brar import brar #…

快速排序题目SelectK问题

力扣75.颜色分类 给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums &#xff0c;原地对它们进行排序&#xff0c;使得相同颜色的元素相邻&#xff0c;并按照红色、白色、蓝色顺序排列。 我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 必须在不使用库内置的 sor…

javascript设计模式----观察者模式

观察者模式:又被称作发布-订阅者模式或消息几支,定义了一种依赖关系,解决了主体对象与观察者之间功能的耦合。 观察者模式有3个接口,注册信息接口,发布信息接口,移除信息接口 注册信息接口:判断消息是否存在于消息容器_messages中,如果不存在,那么将该消息类型推入到消…

普发Pfeiffer TPG252 TPG256A SingleGaugeTPG261-262使用说明手侧

普发Pfeiffer TPG252 TPG256A SingleGaugeTPG261-262使用说明手侧

卷积神经网络的结构组成与解释(详细介绍)

文章目录 前言 1、卷积层 2、激活层 3、BN层 4、池化层 5、FC层&#xff08;全连接层&#xff09; 6、损失层 7、Dropout层 8、优化器 9、学习率 10、卷积神经网络的常见结构 前言 卷积神经网络是以卷积层为主的深层网络结构&#xff0c;网络结构包括有卷积层、激活层、BN层、…

模板初阶的学习

目录&#xff1a; 一&#xff1a;泛型模板 二&#xff1a;函数模板 三&#xff1a;类模板 1&#xff1a;泛型模板 泛型编程&#xff1a;编写与类型无关的通用代码&#xff0c;是代码复用的一种手段。模板是泛型编程的基础。 以交换函数为列进行讲解&#xff1a; void Swap(…

微服务中的重要模块

为什么要有微服务&#xff1f; 微服务提高开发效能&#xff0c;避免业务的重复理解&#xff0c;代码重复开发&#xff0c;增加开发效能和代码复用性。 在实际的工作中许多不同的业务有着共同的功能需求&#xff0c;如果我们每遇到一次这种需求就重新去理解构建一次的话会花费大…

2.1不使用spring-boot-starter-parent

2.1不使用spring-boot-starter-parent ************************************************************* 从第1章的介绍中读者了解到在向pom.xml文件中添加依赖之前需要先添加spring-boot-starter-parent。spring-boot-starter-parent主要提供了如下默认配置&#xff1a; Java…

【深度学习】【机器学习】用神经网络进行入侵检测,NSL-KDD数据集,基于机器学习(深度学习)判断网络入侵,网络攻击,流量异常【3】

之前用NSL-KDD数据集做入侵检测的项目是&#xff1a; 【1】https://qq742971636.blog.csdn.net/article/details/137082925 【2】https://qq742971636.blog.csdn.net/article/details/137170933 有人问我是不是可以改代码&#xff0c;我说可以。 训练 我将NSL_KDD_Final_1.i…

Day42:动态规划 LeedCode 01背包 416. 分割等和子集

01背包 1.确定dp数组以及下标的含义 dp[i][j]的含义&#xff1a;从下标为[0-i]的物品里任意取&#xff0c;放进容量为j的背包&#xff0c;价值总和最大是多少。 那么可以有两个方向推出来dp[i][j] 2.确定递推公式 不放物品i&#xff1a;由dp[i - 1][j]推出&#xff0c;即背…

十大排序——9.桶排序

这篇文章我们来介绍一下桶排序 目录 1.介绍 2.代码实现 3.总结与思考 1.介绍 桶排序和计数排序一样&#xff0c;都不是基于比较进行排序的。 下面通过一个例子来理解一下桶排序吧。 首先&#xff0c;给你一个无序数组[ 20,18,28,66,25,31,67,30 ]&#xff0c;然后&#…

Maven POM元素解析(二)

一、parent <parent>元素包含定位此项目将从中继承的父项目所需的信息。注意&#xff1a;此元素的子元素不是插值的&#xff0c;必须作为文字值给定。 ElementTypeDescriptiongroupIdString要从中继承的父项目的组id。artifactIdString要从中继承的父项目的项目id。ver…

PX6C mini IMU发送速率修改

PX6C mini IMU发送速率修改 提高波特率&#xff11;、命令行方式1.1 原始IMU数据1.2 飞控计算过后的IMU数据 2、更改启动文件 提高波特率 提高发布频率过后数据的传送量一下变的大起来了&#xff0c;首先需要提高波特率。 我使用的PX4 6C mini。更改参数SER_TEL2_BAUD设置和上…

【Entity Framework】你知道如何处理无键实体吗

【Entity Framework】你知道如何处理无键实体吗 文章目录 【Entity Framework】你知道如何处理无键实体吗一、概述二、定义无键实体类型数据注释 三、无键实体类型特征四、无键实体使用场景五、无键实体使用场景六、无键使用示例6.1 定义一个简单的Blog和Post模型&#xff1a;6…

高分二号卫星(GF-2):中国遥感科技的新高度

​高分二号卫星&#xff08;GF-2&#xff09;是中国在高分辨率地球观测领域的重要成就&#xff0c;其引入了先进的成像技术和灵活的数据获取模式&#xff0c;为地球资源监测、环境保护、城市规划等领域提供了强大的数据支持。本文将深入介绍高分二号卫星的技术特点、成像能力以…

【华为OD机试】执行任务赚积分【C卷|100分】

题目描述 现有N个任务需要处理&#xff0c;同一时间只能处理一个任务&#xff0c;处理每个任务所需要的时间固定为1。 每个任务都有最晚处理时间限制和积分值&#xff0c;在最晚处理时间点之前处理完成任务才可获得对应的积分奖励。 可用于处理任务的时间有限&#xff0c;请问在…

10.Vue2.x条件渲染—v-if、v-show

文章目录 条件渲染—v-if、v-show 条件渲染—v-if、v-show <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><title>条件渲染</title><script type"text/javascript" src"../js/vue…