一、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

 

原文地址:http://www.cnblogs.com/worthmove/p/16797406.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性