首页 > 其他分享 >SpringCloud学习笔记(三)——Ribbon

SpringCloud学习笔记(三)——Ribbon

时间:2022-10-16 23:33:32浏览次数:39  
标签:restTemplate url SpringCloud RestTemplate 笔记 result 测试 Ribbon String

一、restTemplate的使用

我们直接通过实例来说明和理解。

首先新建一个子模块,用来测试restTemplate的使用

 

 在测试的主类中添加如下代码,我们就能够获取百度界面的html文件。

代码如下:

package com.example.resttemplate01;

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.web.client.RestTemplate;

@SpringBootTest
class RestTemplate01ApplicationTests {

    @Test
    void contextLoads() {
        //在java中发送http请求
        RestTemplate restTemplate = new RestTemplate();
        //这个对象有get、post、put、delete方法,可以返回一个实体或者对象
        String url = "https://www.baidu.com";
        String result = restTemplate.getForObject(url,String.class);
        System.out.println(result);
    }
}

执行结果如下:

 

 然后我们尝试访问自己写的接口,在这个项目中新建一个controller,编写一个接口进行测试。

首先我们测试get类型的请求,get类型不需要传递太多的参数。

在测试的主类中新增加一个测试get接口的方法,代码如下:

我们先把整个项目启动起来,这样才能访问到接口,然后运行这个测试方法,会发现相应内容都会成功打印。

 

接下来我们测试post类型的请求,post类型有两种传参方式,一种是json格式数据,实参需要用json注解来接收,另外一种是表单的形式,可以直接使用实体类型来接收。

首先我们新增一个User的实体类:

我们在新增测试接口。

注意两种接收方式的请求头不一样,json格式的请求头为:

 

 而表单形式的请求头为:

 

 最后我们在测试主类中用restTemplate来访问这几个接口。

以json形式访问代码如下:

    @Test
    void testPost1() {
        RestTemplate restTemplate = new RestTemplate();
        String url = "http://localhost:8080/testpost1";
        User user = new User("zhangsan",15,10000D);
        //这里之所以可以直接传对象,是因为对象在web中传输时会被自动转成json格式
        String result = restTemplate.postForObject(url,user,String.class);
        System.out.println(result);
    }

以表单形式访问代码如下:

    @Test
    void testPost2() {
        RestTemplate restTemplate = new RestTemplate();
        String url = "http://localhost:8080/testpost2";
        //传递表单参数
        LinkedMultiValueMap<String,Object> map = new LinkedMultiValueMap<>();
        map.add("name","lisi");
        map.add("age",15);
        map.add("salary",15859D);
        String result = restTemplate.postForObject(url,map,String.class);
        System.out.println(result);
    }

都可以实现http的通信。

二、Ribbon

 

标签:restTemplate,url,SpringCloud,RestTemplate,笔记,result,测试,Ribbon,String
From: https://www.cnblogs.com/worthmove/p/16797406.html

相关文章

  • 系统分析师学习笔记(8)-图论与图示网络的最大流量
    要找出图示的最大流量:1.找出最大运量的路径,该路径的最小值为瓶颈值,抽取该值;2.在找出的路径减去抽取值,为0的路径取消;3.在剩余的路径中,找出最大的抽取值,重复步骤1&2;4.将各个步......
  • 20201302姬正坤Linux第四章学习笔记
    第四章并发编程一、并行计算导论1、顺序算法与并行算法在描述顺序算法中,常用一个begin-end代码块列出算法。该代码块中的所有步骤都是通过某个任务依次执行的。而并行......
  • Java核心技术阅读笔记(第五章)
    Chapter5继承作者:Denis版本:1.0编写时间:2022/10/16编写地点:中国山西省5.1类、超类和子类如果一个类继承自另一个类,那么这个类被称为子类,被继承的类被称为超类......
  • 第四单元读书笔记
    第四章并发编程介绍Pthread中的线程操作,包括线程管理函数,互斥量、连接、条件变量和屏障等线程同步工具。4.1并行计算导论4.1.1顺序算法与并序算法使用cobegin-c......
  • 数据库学习笔记04- redis
    5,Redis基础redis--KV数据库--内存--单线程+异步i/o(多路io复用)计算密集型应用:多进程+多进程IO密集型应用:单线程+异步IO(协程)2008年--redis--》REmote......
  • Kubernetes学习笔记(四十):KodeKloud Mock Exam - 2
    Question1(15')Takeabackupoftheetcdclusterandsaveitto/opt/etcd-backup.db.Question2(15')CreateaPodcalledredis-storagewithimage:redis:alp......
  • Redis学习笔记
    基础篇-02.初识Redis-认识NoSQL_哔哩哔哩_bilibili,参考黑马程序员出品的Redis教程,感谢黑马!基础篇一、Redis入门1.认识NoSQL1.1 什么是NoSQLNoSQL最常见的解释是"n......
  • 回溯问题笔记
    回溯算法模板result=[]defbacktrack(路径,选择列表):if满足结束条件:result.append(路径)returnfor选择in选择列表:做出选择......
  • mybatis学习笔记
    1、简介1.1、什么是MyBatis?MyBatis是一款优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的......
  • Linux学习笔记 | Bash基本命令
    (一)历史命令<history>格式:history[选项][历史命令保存文件]选项: -c:   清空历史命令 -w:  把缓存中的历史命令写入历史命令保存文件(~/.bash_history) 历史命令......