RestTemplate的使用
创始人
2024-05-11 12:47:00

RestTemplate

🎇spring中提供的一种发请求的方式🎇
🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇
♥🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇
♥🎇🎇🎇🎇🎇zt🌷🎇🎇🎇🎇🎇🎇
🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇
🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇🎇

准备

编写Controller

package com.pengke.resttemplate03.controller;import com.pengke.resttemplate03.entrty.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 MyController {@GetMapping("/get")public String get(String name){return name;}/*** json参数请求头: header: content-type=application/json;charset=utf-8* @param user* @return*/@PostMapping("/post")public String post(@RequestBody User user){return user.toString();}/*** 接收表单参数* 请求头:header: content-type=application/x-www-from-undercode* @param user* @return*/@PostMapping("/form")public String form(User user){return user.toString();}
}

编写实体类

user.java

这里我使用了lombok,可自行安装该依赖

package com.pengke.resttemplate03.entrty;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {private String name;//姓名private String sex;//性别private Integer age;//年龄
}

关键代码

RestTemplate restTemplate=new RestTemplate();

它有多个方法,例如:

  • restTemplate.getForObject()
  • restTemplate.postForObject()
  • restTemplate.getForEntity()
  • restTemplate.postForEntity()

显而易见主要分为getpost

ObjectEntity的区别:

  • object返回值为接口返回值
  • Entity返回值为请求头,请求参数,响应头,响应状态码等等

get请求

	/*** Get请求*/@Testvoid testGet() {//在java代码中发送一个请求 请求一个页面RestTemplate restTemplate=new RestTemplate();String url="http://localhost:8080/get?name=碰磕";String result1=restTemplate.getForObject(url,String.class);//请求头,请求参数,响应头,响应状态码ResponseEntity result2=restTemplate.getForEntity(url,String.class);System.out.println(result1);System.out.println(result2);}

post请求

	/*** post请求*/@Testvoid testPost() {//在java代码中发送一个请求 请求一个页面RestTemplate restTemplate=new RestTemplate();String url="http://localhost:8080/post";User user=new User("碰磕","男",20);/*** ForObject(请求路径,传参,返回值)*/String result1=restTemplate.postForObject(url,user,String.class);System.out.println(result1);}

表单请求

	/*** 表单请求*/@Testvoid testForm() {//在java代码中发送一个请求 请求一个页面RestTemplate restTemplate=new RestTemplate();String url="http://localhost:8080/form";LinkedMultiValueMap map =new LinkedMultiValueMap<>();map.add("name","碰磕");map.add("sex","男");map.add("age",40);/*** ForObject(请求路径,传参,返回值)*/String result1=restTemplate.postForObject(url,map,String.class);System.out.println(result1);}

代码在上方,区别显而易见🙃
看到这里你就会在Java中发请求了✌

相关内容

热门资讯

华硕 CES 2026亮点速递... 在CES 2026这场科技盛会上,华硕携众多新品亮相。除了主板等核心PC硬件,迷你主机产品线也迎来重...
门头沟将推进京西古道全线基础设...   本报讯(记者张骜)昨天,记者从门头沟区两会新闻发布会获悉,2026年门头沟将持续推进京西古道全线...
原创 什... 凌晨四点半,某职业学院烹饪专业的学生王恒凯已经开始练习刀工。不远处,实习餐厅的后厨里,一台人形机器人...
美国为何迫切想要格陵兰岛?格陵... 近日,美国总统特朗普再次将注意力转向他2025年上任以来多次扬言要得到的格陵兰岛。美国白宫新闻秘书莱...
学校最新或2023(历届)联欢... 学校联欢晚会贺词尊敬的各位领导、各位来宾、老师们、同学们:大家好!爆竹声声辞旧岁,载歌载舞贺新,在这...