x-www-form-urlencoded Vs json HTTP POST - php

很难决定
目前我正在使用php lib curl与x-www-form-urlencoded发送数据

curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($this->arguments));

要么

curl_setopt($curl, CURLOPT_POSTFIELDS, $this->arguments);

第一个问题:第二个似乎内容长度更大,第一个解决方案可能更好?

对于扁平消息,例如:

{
    "name": "John",
    "token": "2121232145",
    "code": "7",
    "data": "Hello"
}

但是我也可以有一个代表对象的数据字段,在这种情况下,我将其编码,但是这样做(URL编码为Json)是非常冗长和丑陋的消息,

另一方面,我尝试将其作为application / json content-type发送

curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($this->arguments));

小邮件的内容长度较大,但内嵌json,显然更好

但是x-www-form-urlencoded也接近我需要发送的表单数据,除非嵌入了json

取决于内容类型,有两种不同的servlet解析方法并不完美,所以还有另一种选择吗?

参考方案

Here您可以阅读有关格式的类似讨论。

如果保证编码数据的结构是
名称-值对,x-www-form-urlencoded似乎足够。如果
结构可能是(任意)复杂的(例如,嵌套列表或
关联数组),那么绝对可以使用JSON。

至于我,我是KISS的专家。在您的情况下,JSON / XML /无论是在时间,内存还是CPU周期上都是额外的成本。 x-www-form-urlencoded数据结合了可读性和紧凑性,因此我敢保证这是您的选择。

json_encode网址失败 - php

有人在this bug附近吗?echo json_encode(array('url'=>'/foo/bar')); {"url":"\/foo\/bar"} 我使用Zend_Json and Zend_Json_Expr以便我甚至可以在js对象中获取回调函数-但我无法获得…

PHP json_encode数组到javascript关联数组 - javascript

我有一些从PHP中读取的mysqli列。它正在完美地获取和回显。$results = mysqli_fetch_assoc(mysqli_query($conn, $querystring)); echo json_encode($results); //$results = {"title":"Sea Shells"…

Twig embed vs include,任何使用理由包括 - php

为什么不总是使用嵌入?根据文档,embed标签结合了include和extend标签的行为。我了解到,在很多情况下,您不需要扩展就只想呈现另一个模板的内容,但是在我看来,您可以始终使用embed并达到目的。嵌入是否会对性能产生影响?我缺少任何功能差异吗? 参考方案 我将总结Embed和Include之间的异同如下,两者都添加到树枝中,以使HTML代码段可重复…

JSON Post and Decode数组到PHP - php

我正在尝试使用JSON将数组发布到PHP文件。这没用。问题是什么也没发生。如果我将数据类型分解为:“ json”,则会收到警报(但没有数据)。这是我的jQuery代码var arr = new Array(); arr.push('1','Brussels|25'); arr.push('2',&#…

如何使用PHP和Apache在请求中查找HTTP版本 - php

我需要确定在我的PHP脚本中运行的HTTP请求是HTTP / 1.0还是HTTP / 1.1请求,该脚本在Apache下运行。有没有办法查询此信息? 参考方案 $_SERVER['SERVER_PROTOCOL'],位于$_SERVERDocs: 'SERVER_PROTOCOL' 请求页面的信息协议的名称和修订版;即…