首页 > 其他分享 >使用哪种注解处理后台Map参数类型,探究前端发送请求URL限制

使用哪种注解处理后台Map参数类型,探究前端发送请求URL限制

时间:2023-08-26 09:44:37浏览次数:39  
标签:Map RequestParam URL 参数 注解 page localhost

如何处理接口参数是Map类型探究URL限制

法1:前端发送Get请求

需求:为了得到分页结果,我将分页时需要的参数封装到Map中进行传递

@GetMapping("/page")
public R queryPage(@RequestParam Map<String,Object> params){}
// 1.测试GET http://localhost:8080/product/categorybrandrelation/page接口
// @GetMapping("/page")
// public R queryPage(@RequestParam Map<String,Object> params)
const getCategoryBrand = () => {
    axios.get( `http://localhost:8080/product/categorybrandrelation/page`,{
              params: {
                  page: "2",
                  limit: "100"
              }
              }).then(res => {
        console.log(res.data)
    })
}

结果:结果返回200

说明:这是符合Restful规范,但是有一个缺点,发送GET请求的URL长度通常是有限制的,对于参数较少可以使用&拼接参数到URL地址后面进行拼接,传递给后端接口;如果一旦参数较多,超过URL长度8000字节,推荐使用Post请求,在post请求体中传递参数可以限制达到4GB(足以使用)

法2:前端发送post请求,参数是以json格式发送过去(推荐)

@PostMapping("/page")
public R queryPage(@RequestBody Map<String,Object> params){}
// 2.测试 http://localhost:8080/product/categorybrandrelation/page接口
let body = {
    page: "1",
    limit: "6"
};
const getCategoryBrand2 = () => {
    axios.post( `http://localhost:8080/product/categorybrandrelation/page`,body,{
    Headers: {
    	'Content-type': 'application/json'
    }
    }).then(res => {
    	console.log(res.data)
    })
}

结果:

说明:虽然不符合Restful规范,Post方式通过json以请求体的方式传递参数封装Map中,参数限制数量远大于GET方式

注意:后端除了@RequestBody处理参数,也可以使用@RequestParam处理参数

法3:前端发送post请求,参数是以表单格式发送过去

如果你硬是要发送表单形式的参数,也是可以的,我觉得json更方便

 @PostMapping("/page")
 public R queryPage(@RequestParam Map<String,Object> params)
 // 3.测试 http://localhost:8080/product/categorybrandrelation/page接口
// @PostMapping("/page")
// public R queryPage(@RequestParam Map<String,Object> params)
import qs from 'qs';

let body2 = {
    page: "1",
    limit: "6"
};
const getCategoryBrand3 = () => {
    axios.post(`http://localhost:8080/product/categorybrandrelation/page`, qs.stringify(body2), {
        headers: {
            "Content-Type": "application/x-www-form-urlencoded"
        }
    }).then(res => {
        console.log(res.data)
    })
}

结果:

说明:如果是以表单的形式传递参数,必须使用@RequestParam

标签:Map,RequestParam,URL,参数,注解,page,localhost
From: https://www.cnblogs.com/rong-xu-drum/p/17658371.html

相关文章

  • [宿舍管理模块】的催起事件的热力图(heatmap)设计
    授课老师可以上午第一节开始时或下午第一节开始时,通过平台[教学课堂管理]发起一个可选的催起消息,此消息可以可以发至班主任或宿管或特殊管理员,最好由宿管去完成这个催起任务,班主任也许正在授课,会出现冲突。当宿管通过平台的[宿舍管理模块]接收到他所负责的宿舍的多个班级多个......
  • .NET6 使用 AutoMapper
    一、Net6环境下的.netcore项目里如何使用AutoMapper实现依赖注入。注: AutoMapper是一个对象-对象映射器,可以将一个对象映射到另一个对象。第一步,在Nuget引入AutoMapper、AutoMapper.Extensions.DependencyInjection这两个NuGet包 第二步,定义Profile,方便......
  • .NET6 配置 AutoMapper 与 AutoFac
    AutoMapper一、Net6环境下的.netcore项目里如何使用AutoMapper实现依赖注入。注:AutoMapper是一个对象-对象映射器,可以将一个对象映射到另一个对象。第一步,在Nuget引入AutoMapper、AutoMapper.Extensions.DependencyInjection这两个NuGet包 第二步,定义Prof......
  • 【Java】Mapper # 和$的区别
    #'防止依赖注入'#是将传入的值当做字符串的形式,#防止依赖注入$是将传入的数据直接显示生成sql语句https://blog.csdn.net/hao65103940/article/details/79099159......
  • Spring 常用注解
    今天给大家介绍一下Spring中的常用注解,同时这些注解也是Spring中经常用到的注解,下面我们就一起来看看都有哪些注解吧。1.@Controller在控制层使用,标识该类是SpringMVCcontroller处理器,用来创建处理http请求的对象。2.@Service在业务逻辑层使用,用于标注业务层组件。......
  • JS 验证URL是否有效
    functionisValidHttpUrl(string){try{constnewUrl=newURL(string);returnnewUrl.protocol==='http:'||newUrl.protocol==='https:';}catch(err){returnfalse;}}console.log(isValidHttpUrl('https://w......
  • [javase高级] HashMap实现原理
    HashMap是数组+链表实现的,既然用到hash散列,那么肯定不可避免的会出现冲突问题,HashMap解决冲突的方法是拉链法,因为这里有用到数组,那么当容量不足的时候就需要进行扩容操作了,在HashMap中有个术语叫冲突,当冲突几率越来越高的时候就需要进行扩容操作了那什么情况就叫冲突几率高呢?就是......
  • 截取url中传递的参数
    第一种方法,直接用window.location.search截取?后的参数,但是如果search中无参数,如下 search为空,只能用另一种方法第二种方法//获取URL中的?查询字符串部分consturl=window.location.href;varquerys=url.substring(url.indexOf("?")+1).split("&");......
  • iOS开发之--从URL加载图片
    +(UIImage*)imageFromURLString:(NSString*)urlstring{//Thiscallissynchronousandblockingreturn[UIImageimageWithData:[NSDatadataWithContentsOfURL:[NSURLURLWithString:urlstring]]];}直接转化一下就可以直接拿到图片!作者:稻草......
  • curl的用法| curl是什么意思
    骑士李四记录;1.在服务器上查看请求是否返回正常:curl-ihttp://127.0.0.1:8080/api/abc返回这个表示请求返回ok。更多参考大神笔记:http://www.ruanyifeng.com/blog/2019/09/curl-reference.html......