网站首页 > 技术文章 正文
哈喽大家好,昨晚给大家介绍了SpringCloud远程服务调用的方式RPC和HTTP,今天接着给大家介绍基于http通讯协议Spring RestTemplate 的远程调用。
课程目标:
了解Spring RestTemplate的应用
原理
http工具类包一般情况下有如下三种,它们都可以方便的进行http服务调用:
- HttpClient
- okHttp
- JDK原生URLConnection
HttpClient、okHttp都是URLConnection的分支,Spring 提供的RestTemplate工具类底层就是对上述的okHttp、JDK原生URLConnection工具类进行了封装,可在spring项目中使用RestTemplate进行服务调用,而后面我们将要讲到的Fegin 则是对JDK原生URLConnection进行了封装。
实操步骤概览:
1:引入依赖包
2:定义测试类 RestTemplateDemo.java
3:运行测试结果
下面进入具体的coding环节:
1:引入依赖包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
2:定义测试类 RestTemplateDemo.java
package com.helloworldgo.client;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.junit.Test;
import org.springframework.web.client.RestTemplate;
import com.helloworldgo.entiry.User;
public class RestTemplateDemo {
@Test
public void testHttpClient() throws Exception{
// 请求地址
/*
String url = "http://10.183.102.118:8082/auth/user/get/8";
RestTemplate restTemplate = new RestTemplate();
User user = restTemplate.getForObject(url, User.class);
System.out.println(user);
*/
//或者使用
// 请求地址
String url = "http://10.183.102.118:8082/auth/user/get/8";
//使用resttemplate来调用地址获取数据
RestTemplate restTemplate = new RestTemplate();
// 请求地址,转换的json数据放入ResponseEntity
ResponseEntity<User> user = restTemplate.getForEntity(url, User.class);
//获取用户信息
System.out.println(user.getBody());
}
}
3:测试结果如下
User(id=8, eName=chuanjianguo, password=iLoveChina, cName=川建国, age=74, sex=1)
关于HttpClient和okHttp如何选型,可参考下面的博文
猜你喜欢
- 2024-09-08 精讲RestTemplate第7篇-自定义请求失败异常处理
- 2024-09-08 java实现调用http请求的几种常见方式
- 2024-09-08 深度原理学习——白话TCP与HTTP的keep–alive机制
- 2024-09-08 有了WebClient还在用RestTemplate?
- 2024-09-08 Spring Boot外部接口调用:使用RestTemplate与WebClient操控HTTP
- 2024-09-08 Java服务优雅上下线(java项目如何上线)
- 2024-09-08 Spring 框架里的 HTTP 调用,RestTemplate 还是 WebClient
- 2024-09-08 微服务中如何使用RestTemplate优雅调用API(详细分析)
- 2024-09-08 真不是吹,Spring 里这款牛逼的网络工具库你可能没用过
- 2024-09-08 Java工具类封装微服务间HTTP通信(java md5工具类)
- 02-21走进git时代, 你该怎么玩?_gits
- 02-21GitHub是什么?它可不仅仅是云中的Git版本控制器
- 02-21Git常用操作总结_git基本用法
- 02-21为什么互联网巨头使用Git而放弃SVN?(含核心命令与原理)
- 02-21Git 高级用法,喜欢就拿去用_git基本用法
- 02-21Git常用命令和Git团队使用规范指南
- 02-21总结几个常用的Git命令的使用方法
- 02-21Git工作原理和常用指令_git原理详解
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)