使用json数据或参数发送POST请求的区别?

时间:2016-03-17 06:37:01

标签: json post request

可以使用网址/api?k=v发送POST请求。或者使用json {"k":"v"}发送请求。

他们有什么不同。在后端接受日期时有什么不同吗? 我可以使用getParameter来获取它们吗?

3 个答案:

答案 0 :(得分:1)

  

它们之间的区别是什么?

url / api?k = v使用名称值对,这是query String的一项功能。

json {“k”:“v”}这是@WAQAS YOUSAF刚刚提到的json格式的答案你可以发送由你定义的复杂数据结构。在json库(如JacksonGSon的帮助下,它们也很容易解析。

  

后端接受日期有何不同?

日期类型没有区别只是差异是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中对任意复杂数据结构进行编码,而纯文本查询字符串只有一层深度。

从安全的角度来看,一切都已经设定好了。