1.新建一个restTemplate的model
2.进入该项目的rest-template的自动生成的测试类RestTemplateApplicationTests
点击运行该测试,控制台会输出这些访问页面的html代码
3.测试get请求方式
新建一个controller包下的TestController类
在测试类中调用controller类中的方法
先运行主函数类,再运行测试类中得到testGet()方法,控制台输出ok
此时,启动的主函数类中会打印出代码中要求打印的数据
4.测试Post请求方式1
测试1:通过josn传参,由于通过json传参需要用实体类去接收参数,新建User类
package com.it.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/*
@Data:自动生成属性的get和set方法
@AllArgsConstructor:自动生成属性的全参构造
@NoArgsConstructor:自动生成属性的无参构造
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private String name;
private Integer age;
private Integer price;
}
控制类编写post请求的方法
测试类中编写测试方法,进行测试
测试结果
此时,启动的主函数类中会打印出代码中要求打印的数据
5.测试Post请求方式2
测试2:通过表单传参
控制类编写post请求的方法
测试类中编写测试方法,进行测试
测试结果
此时,启动的主函数类中会打印出代码中要求打印的数据
6.项目结构
controller.TestController详细代码
package com.it.controller;
import com.it.entity.User;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
@GetMapping("testGet")
public String get(String name){
System.out.println(name);
return "ok";
}
/**
* post传参 两种
* 1:application/json
* 需要实体类来接收参数
* @param user
* @return
*/
@PostMapping("testPost1")
public String testPost1(@RequestBody User user){
System.out.println(user);
return "ok";
}
/**
* 2.接收表单参数
*
* @param user
* @return
*/
@PostMapping("testPost2")
public String testPost2(User user){
System.out.println(user);
return "ok";
}
}
测试类详细代码
package com.it;
import com.it.entity.User;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.web.client.RestTemplate;
@SpringBootTest
class RestTemplateApplicationTests {
@Test
void contextLoads() {
//在java代码中去发送一个请求,请求一个页面
RestTemplate restTemplate = new RestTemplate();
//如果你访问页面,会返回一个Html代码
String url="https://www.baidu.com";
String result = restTemplate.getForObject(url, String.class);
System.out.println(result);
}
@Test
void testGet(){
RestTemplate restTemplate = new RestTemplate();
String url="http://localhost:8080/testGet?name=testGet";
String result= restTemplate.getForObject(url, String.class);
System.out.println(result);
}
@Test
void testPost1(){
RestTemplate restTemplate = new RestTemplate();
String url="http://localhost:8080/testPost1";
User user = new User("小明",25,15000);
//发送post 而且是json参数,因为web里面默认使用jackson,它会把对象转换成json字符串
String s = restTemplate.postForObject(url, user, String.class);
System.out.println(s);
}
@Test
void testPost2(){
RestTemplate restTemplate = new RestTemplate();
String url="http://localhost:8080/testPost2";
//构建一个表单参数
LinkedMultiValueMap<String, Object> map = new LinkedMultiValueMap<>();
map.add("name","小红");
map.add("age",26);
map.add("price",18000);
String s = restTemplate.postForObject(url, map, String.class);
System.out.println(s);
}
}
以上就是restTemplate的基本使用了