RestTemplate的使用
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
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
显而易见主要分为
get
和post
Object
和Entity
的区别:
object
返回值为接口返回值Entity
返回值为请求头,请求参数,响应头,响应状态码等等
get请求
/**
* Get请求
*/
@Test
void testGet() {
//在java代码中发送一个请求 请求一个页面
RestTemplate restTemplate=new RestTemplate();
String url="http://localhost:8080/get?name=碰磕";
String result1=restTemplate.getForObject(url,String.class);
//请求头,请求参数,响应头,响应状态码
ResponseEntity<String> result2=restTemplate.getForEntity(url,String.class);
System.out.println(result1);
System.out.println(result2);
}
post请求
/**
* post请求
*/
@Test
void 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);
}
表单请求
/**
* 表单请求
*/
@Test
void testForm() {
//在java代码中发送一个请求 请求一个页面
RestTemplate restTemplate=new RestTemplate();
String url="http://localhost:8080/form";
LinkedMultiValueMap<String,Object> 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中发请求了✌