RestTemplate的使用

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

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

碰磕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值