基于springboot的HttpClient、OKhttp、RestTemplate对比
HttpClient详细
Httpclient基础!!!!实战训练!!!!-CSDN博客
OKhttp使用
OKhttp导包
<!-- ok的Http连接池 --><dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>4.9.3</version></dependency>
Get请求
//okHttpClient//创建一个新的 OkHttpClient 实例OkHttpClient client = new OkHttpClient();//创建一个请求对象Request request = new Request.Builder().url("http://localhost:8090/api/product/test").get().build();//发送请求并接收响应Response response = client.newCall(request).execute();System.out.println(response.body().string());response.body().close();
post请求:
//okHttpClientOkHttpClient client = new OkHttpClient();JSONObject jsonObject=new JSONObject();jsonObject.put("username","admin");jsonObject.put("password","123456");/* System.out.println("jsonObeject对象 :"+jsonObject);System.out.println("toJSONString()方法:"+jsonObject.toJSONString());System.out.println("toString()方法 :"+jsonObject.toString());System.out.println("String.valueOf方法:"+String.valueOf(jsonObject));*///转化为字符串String s1=jsonObject.toJSONString();//构建请求体(RequestBody): 你可以根据需要发送不同类型的请求体。以下示例演示如何发送 JSON 格式的请求体:RequestBody requestBody = RequestBody.create(s1, MediaType.parse("application/json; charset=utf-8"));//创建一个请求对象Request request = new Request.Builder().url("http://localhost:8080/admin/employee/login").post(requestBody)//设置请求方法为 POST 并设置请求体.addHeader("Authorization", "Bearer your_token_here") // 添加授权请求头(可选).build();Response response = client.newCall(request).execute();System.out.println(response.body().string());response.body().close();
toString()、String.valueOf()以及toJSONString()的区别及用法-CSDN博客
扩展知识:
1. RequestBody.create()
RequestBody.create()
是 OkHttp 提供的一个静态方法,用于构造一个 RequestBody
对象。在发送 HTTP 请求时,RequestBody
通常包含了请求的内容(例如 POST 请求中的 JSON 数据、表单数据等)。
RequestBody.create()
有两个参数:
- 第一个参数是请求体的内容,可以是一个
String
、byte[]
、InputStream
等形式。 - 第二个参数是请求体的媒体类型(
MediaType
),它描述了请求体的内容类型。
2、MediaType.parse("application/json; charset=utf-8")
MediaType
是 OkHttp 中用于描述内容类型的类。它包含了关于请求或响应数据格式的元数据。MediaType.parse()
方法用于解析一个字符串并返回一个 MediaType
对象。
在这里,"application/json; charset=utf-8"
表示请求体的内容类型是 JSON 格式,并且使用了 UTF-8 字符编码。
具体来说:
"application/json"
表示请求体的格式是 JSON。charset=utf-8
指定了请求体数据采用 UTF-8 编码格式。
RestTemplate使用
1. 基本配置
在 Spring 中,RestTemplate
通常是作为一个 Bean 注册到 Spring 容器中的,可以在 Spring 配置类中进行配置。例如:
package com.example.demo1.configuration;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;@Configuration
public class TestConfig {@Beanpublic RestTemplate restTemplate() {return new RestTemplate();}}
通过这种方式,RestTemplate
可以在 Spring 容器中管理,并且可以注入到其他类中。
2. 发送 GET 请求
RestTemplate
提供了多种方法来发送 GET 请求,最常用的是 getForObject()
和 getForEntity()
。
示例:发送 GET 请求
@SpringBootTest
class Demo1ApplicationTests {@Autowiredprivate RestTemplate restTemplate;@Testpublic void test() throws IOException {String url = "http://localhost:8090/api/product/test";String response = restTemplate.getForObject(url, String.class);System.out.println(response);}
相关文章:

基于springboot的HttpClient、OKhttp、RestTemplate对比
HttpClient详细 Httpclient基础!!!!实战训练!!!!-CSDN博客 OKhttp使用 OKhttp导包 <!-- ok的Http连接池 --><dependency><groupId>com.squareup.okhttp3</g…...

(计算机组成原理)期末复习
第一章 计算机的基本组成:硬件软件(程序)计算机系统 软件有系统软件(系统管理工具),应用软件 计算机硬件:包括主机和外设,主机包括CPU和内存,***CPU由运算器和控制器所组…...

从0到1部署Tomcat和添加servlet(IDEA2024最新版详细教程)
本文不仅细化了每一个步骤,实现了从0到1部署Tomcat和添加servlet。还针对IDEA2024版和以前的版本在部署上的区别,做了详细介绍,尤其是add framework support部分。与此同时,针对控制台中文乱码问题,本文也给出了详细解…...
【Java从入门到放弃 之 Java程序基础】
Java程序基础 Java程序基础基本数据类型和变量数据类型变量赋值基本运算算术运算比较运算逻辑运算 Java程序基础 基本数据类型和变量 数据类型 对Java语言而言,有如下基本数据类型。 整数类型:有4种整型byte/short/int/long,它们占用的字…...

2024年11月26日Github流行趋势
项目名称:v2rayN 项目维护者:2dust yfdyh000 CGQAQ ShiinaRinne Lemonawa 项目介绍:一个支持Xray核心及其他功能的Windows和Linux图形用户界面客户端。 项目star数:70,383 项目fork数:11,602 项目名称:fre…...

相亲交友小程序项目介绍
一、项目背景 在当今快节奏的社会生活中,人们忙于工作和事业,社交圈子相对狭窄,寻找合适的恋爱对象变得愈发困难。相亲交友作为一种传统而有效的社交方式,在现代社会依然有着巨大的需求。我们的相亲交友项目旨在为广大单身人士提…...

使用ENSP实现默认路由
一、项目拓扑 二、项目实现 1.路由器AR1配置 进入系统试图 sys将路由器命名为R1 sysname R1关闭信息中心 undo info-center enable 进入g0/0/0接口 int g0/0/0将g0/0/0接口IP地址配置为2.2.2.1/24 ip address 2.2.2.1 24进入g0/0/1接口 int g0/0/1将g0/0/1接口IP地址配置为1.…...
CSGO游戏搬砖党如何应对上海Major
大家最近都关注major比赛了吗?目前已经有不少顶尖CSGO战队来到了上海,备战即将到来的2024上海Major赛。本次比赛正赛将于11月30日开打,欧洲、美洲和亚太地区的24支顶尖战队通过两周的角逐,包括揭幕赛、淘汰赛以及决赛三种…...
【人工智能】AutoML自动化机器学习模型构建与优化:使用Auto-sklearn与TPOT的实战指南
解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 机器学习模型的构建和优化是一个复杂且耗时的过程,涉及特征工程、模型选择、超参数调优等多个环节。AutoML(Automated Machine Learning)旨在通过自动化的方式来简化这些流程,提高开发效率并提升模型表现。Au…...

go-zero(八) 中间件的使用
go-zero 中间件 一、中间件介绍 中间件(Middleware)是一个在请求和响应处理之间插入的程序或者函数,它可以用来处理、修改或者监控 HTTP 请求和响应的各个方面。 1.中间件的核心概念 请求拦截:中间件能够在请求到达目标处理器之…...

vim 如何高亮/取消高亮
高亮 :在ESC模式下使用 shift # 取消高亮:在ESC模式下输入英文输入 :nohl (no highlight)...

蓝桥杯练习题
目录 1.劲舞团 2.数字诗意 3.封闭图形个数 4.回文数组 欢迎 1.劲舞团 0劲舞团 - 蓝桥云课 #include <iostream> using namespace std; int main() {int num1,M0;long long c[1000000];int cnt0;string a,b ;while(cin>>a>>b>>c[cnt])//系统自动输入…...

【设计模式】创建型模式之单例模式(饿汉式 懒汉式 Golang实现)
定义 一个类只允许创建一个对象或实例,而且自行实例化并向整个系统提供该实例,这个类就是一个单例类,它提供全局访问的方法。这种设计模式叫单例设计模式,简称单例模式。 单例模式的要点: 某个类只能有一个实例必须…...

使用 Docker Compose 来编排部署LMTNR项目
使用 Docker Compose 来部署一个包含 Linux、MySQL、Tomcat、Nginx 和 Redis 的完整项目的例子。假设我们要部署一个简单的 Java Web 应用,并且使用 Nginx 作为反向代理服务器。 项目目录结构 首先需要确保 Docker 和docker-compose已经安装并正在运行。docker --v…...

创建HTTPS网站
每天,我们都会听到网络上发生身份盗窃和数据侵权的案例,这导致用户对自己访问的网站更加怀疑。他们开始更加了解自己将个人信息放在哪里以及信任哪些类型的网站。了解如何使网站使用HTTPS变得比以往任何时候都更加重要。 解读缩略词:HTTP与HT…...

以3D数字人AI产品赋能教育培训人才发展,魔珐科技亮相AI+教育创新与人才发展大会
11月20日,北京中关村国际创新中心迎来了“AI教育创新与人才发展大会暨首届北京数字人才发展大会”的盛大启幕。此次大会汇聚了培训、教育、科技、人才领域的专家学者、行业领袖及企业代表,共同探讨人工智能技术在教育培训领域的革新应用与数字人才培养体…...

springboot配置https,并使用wss
学习链接 springboot如何将http转https SpringBoot配置HTTPS及开发调试 Tomcat8.5配置https和SpringBoot配置https 可借鉴的参考: springboot如何配置ssl支持httpsSpringBoot配置HTTPS及开发调试的操作方法springboot实现的https单向认证和双向认证(java生成证…...
Qt SQL模块概述
Qt SQL支持的数据库 要在项目中使用 Qt SQL 模块,需要在项目配置文件中添加下面一条设置语句: Qt sql在头文件或源文件中使用 Qt SQL 模块中的类,可以使用包含语句: #include <QtSql>这样会将某个 Qt SQL 模块中的所有类…...

JavaWeb后端开发知识储备2
目录 1.HttpClient 2.微信小程序开发 3.Spring Cache 4.Spring Task 4.1cron表达式 4.2入门案例 5.WebSocket协议 1.HttpClient 简单来说,HttpClient可以通过编码的方式在Java中发送Http请求 2.微信小程序开发 微信小程序的开发本质上是前端开发࿰…...

RabbitMQ原理架构解析:消息传递的核心机制
文章目录 一、RabbitMQ简介1.1、概述1.2、特性 二、RabbitMQ原理架构三、RabbitMQ应用场景3.1、简单模式3.2、工作模式3.3、发布订阅3.4、路由模式3.5 主题订阅模式 四、同类中间件对比五、RabbitMQ部署5.1、单机部署5.2、集群部署(镜像模式)5.3、K8s部署…...

CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...

cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...

ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...

android RelativeLayout布局
<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...