get请求参数放body里,post请求参数放url上这种是否合理?
有时候参数很少的情况我会让前端把参数放到post的url上,因为我感觉比如有两个参数,我后端要新建一个bean用@RequestBody接收完全没必要
我的想法是:如果get请求的参数可能比较复杂比如有bean的嵌套或者长度比较大超过了容器的限制(不考虑产品涉及是否合理),就可以放在body中,否则就放在url上;如果post请求参数比较简单(比如两个参数),我就放在url上不想在新建一个bean了(感觉麻烦),如果参数比较多或者比较复杂就放在body中。
我的这种想法合理吗?
get请求在浏览器上不可以携带body,这个是浏览器的限制。至于是否合理,编码上的复杂是可以自定义一些框架设置来简化的,比如自定义参数解析器等,不应该为了编码麻烦不去做你认为合理的事情(能力范围内尽力)
技术上讲是可以的,但是不建议: https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/GET
虽然HTTP规范(RFC 7231)并未规定GET请求不可以携带Body,但是后续的规范逐步建议应该明确这种行为,给予警告甚至拒绝。
曾经ElasticSearch的RESTAPI采用GET请求携带Body请求的接口格式和规范,但在目前版本中已经彻底废弃
一篇不错的介绍文章可以参见: https://www.baeldung.com/cs/http-get-with-body
如果你用第三方类库,可能已经开始拒绝GET请求携带Body了,所以更不建议你这么去做
你的这种想法并不合理。HTTP协议对GET和POST请求的参数放置位置有明确的规定:
将GET请求的参数放在请求体中,或者将POST请求的参数放在URL中,都不符合HTTP协议的设计原则,也可能会导致一些问题,如浏览器兼容性问题、URL长度限制问题、缓存和书签保存问题等。
因此,建议按照HTTP协议的规定,将GET请求的参数放在URL的查询字符串中,将POST请求的参数放在请求体中。同时,为了处理复杂的数据结构,可以考虑使用JSON、XML等格式来传输数据。
今天调用了一个接口,接口要求传一个日期过去,当时没仔细看(因为文档也没写请求参数和相应参数),以为是传一个data,里面有条件查询的参数之类的,结果第一次报错。 Required request parameter 'date' for method parameter type String is not present(方法参数类型字符串所需的请求参数“日期”不存在) 后面第二次调用的时候注意
将jwt(json web令牌)作为GET请求的查询参数放入url是否安全?
我需要执行修改后的请求,但我有一个问题,我不能很好地理解。在尝试使用代码之前,我用Postman和request测试了api调用,如下所示: 下面是我的android代码: 编辑请求: null
我试图做一个POST请求,但我不能让它工作: 我基本上想复制这个超文本传输协议请求(不是ajax),就像它是由html表单发起的一样: URL:/api 参数:用户名和密码
问题内容: 我需要构建一个GWT应用程序,该应用程序将由具有特定URL参数的外部应用程序调用。 例如: http://www.somehost.com/com.app.client.Order.html?orderId=99999。 如何在GWT应用程序中捕获orderId参数? 问题答案: 尝试, PS GWT可以调用本机javascript,这意味着如果javascript可以完成任务,那么G
问题内容: 在swift 3中建议使用带参数的GET的哪种方法? 范例: 提前致谢 ! 问题答案: 示例如何使用请求。