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

显而易见主要分为getpost

ObjectEntity的区别:

  • 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中发请求了✌

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6