Spring Boot菜鸟示例——Post

5 篇文章 1 订阅

Http Get请求与Post简单介绍

在这里插入图片描述

Get请求参数一般放在url或路径里,例如http://localhost:8888/hello/hiyj/table?key1=value1&key2=value2,但是也不是不能放在Body里,Body就是上图的请求数据部分,路径里看不到,有了一些一眼看穿数据的门槛。Post请求与Get请求很多地方相通,最大的不同,Post支持更大的请求数据携带。

起手式,一样的项目结构和请求注解

在这里插入图片描述

lombok插件

//好东西,可以省的自己写Get和Set还有toSting函数,需要添加依赖
import lombok.*;

添加Post请求接口整体代码

package cn.hiyj.post.postex.controller;

//好东西,可以省的自己写Get和Set还有toSting函数,需要添加依赖
import lombok.*;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

@RestController
@RequestMapping("/hello")
public class HelloWorldController {

    // Post请求注解,可添加额外注解参数
    @PostMapping
    public String hello() {
        return "You use Post request me!";
    }

    // Post 与 Get 请求注解部分功能一致
    // {path}对应这个位置的路径,可以赋值给赋值@PathVariable修饰的参数,默认是变量名
    // @RequestParam获取的是请求方法里的参数,例如http://localhost:8080/hello/get?name=hiyj&sex=boy
    // 那么可以生成{"name":"hiyj","sex":"boy"}内容的Map
    @PostMapping("{path}/table")
    public String path(@PathVariable String path,
                       @RequestParam Map<String, String> table) {
        return "You use Post request me! path: " + path + "\ntable: " + table.toString();
    }

    // 写的这的原因是方便在这里写示例代码,记得合理划分自己的项目结构
    // @Data自动生成了隐藏的get和set还有toString函数
    @Data
    class User {
        private String name;
        private String sex;
    }

    // 可以将http请求中的Body赋值到user
    @PostMapping("set")
    public String set(@RequestBody User user) {
        return "You use Post request me! User: " + user.toString();
    }
}

运行后CMD测试

curl -X POST http://localhost:8888/hello

curl -X POST "http://localhost:8888/hello/hiyj/table?key1=value1&key2=value2"

curl -X POST -H "Content-Type: application/json" -d"{\"name\":\"hiyj\",\"sex\": \"boy\"}" http://localhost:8888/hello/set

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值