可以使用网址/api?k=v
发送POST请求。或者使用json {"k":"v"}
发送请求。
他们有什么不同。在后端接受日期时有什么不同吗?
我可以使用getParameter
来获取它们吗?
答案 0 :(得分:1)
它们之间的区别是什么?
url / api?k = v使用名称值对,这是query String的一项功能。
json {“k”:“v”}这是@WAQAS YOUSAF刚刚提到的json格式的答案你可以发送由你定义的复杂数据结构。在json库(如Jackson,GSon的帮助下,它们也很容易解析。
后端接受日期有何不同?
日期类型没有区别只是差异是k = v你通过查询字符串发送它,对于json你以json格式发送它。解析它时,它们与上面提到的不同。
我可以使用getParameter来获取它们吗?
您只需将getParameter与查询字符串一起使用,当您在身体上发送数据时,它将从参数映射(request.getParameterMap()
)参数映射获取数据为空:
{action:'Sale'}
要查看您的json正文数据,您可以使用以下代码:
String bodyRequest = request.getReader().lines().collect(Collectors.joining(System.lineSeparator()));
System.out.println("BodyRequest:" + bodyRequest);
从安全角度来看;使用带有查询字符串的post不是一种安全的方式,因为您可以通过这种方式在apache日志中看到参数。所以最好同时使用Post和body请求。
答案 1 :(得分:0)
使用网址发布POST - / api?k = v
这意味着您将参数k
的值v
作为http的查询参数。
如果使用JSON发送,您将使用http的请求正文发送它,并且您将无法使用getParameters来检索它。
答案 2 :(得分:0)
从纯粹的技术角度来看,
如果您根本不想使用查询参数,则需要POST并将JSON放入请求正文中。根据您选择的选项,在如何处理它时会有所不同。
对于JSON,当然还有解析它所需的时间,但这应该可以忽略不计。
JSON优于其中没有JSON的查询字符串的优点是,您可以在JSON中对任意复杂数据结构进行编码,而纯文本查询字符串只有一层深度。
从安全的角度来看,一切都已经设定好了。