14 php forms json curl content-type
这很难决定,
目前我正在发送数据为x-www-form-urlencoded with php lib curl with
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($this->arguments));
Run Code Online (Sandbox Code Playgroud)
要么
curl_setopt($curl, CURLOPT_POSTFIELDS, $this->arguments);
Run Code Online (Sandbox Code Playgroud)
第一个问题:第二个似乎是内容长度较大,第一个解决方案可能更好?
它对于平面消息很实用,例如:
{
"name": "John",
"token": "2121232145",
"code": "7",
"data": "Hello"
}
Run Code Online (Sandbox Code Playgroud)
但是我也可以有一个代表一个对象的数据字段,在这种情况下我正在考虑它,但这样做(url编码一个Json)是非常冗长和丑陋的消息,
另一方面,我尝试将其作为application/json内容类型发送
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($this->arguments));
Run Code Online (Sandbox Code Playgroud)
对于小消息,内容长度更大,但是使用嵌入的json,它显然更好
但x-www-form-urlencoded也接近我需要发送的表单数据,除非嵌入了json
根据内容类型,拥有2个不同的servlet解析方法并不优雅,那么还有另一种选择吗?
edi*_*igu 10
x-www-form-urlencoded和JSON是不同的东西.虽然x-www-form-urlencoded只是用于将表单提交给服务器的默认内容类型,但JSON是基于文本和人类可读的格式(标准),用于通过网络连接序列化和发送结构化数据.你不应该比较它们.
第二个似乎是更大的内容长度,第一个解决方案可能更好?
不,没有标有"更好"的解决方案.就像pinepain所说,它实际上取决于你发送什么样的数据以及如何解析/处理它.JSON非常适合发送带有请求的附加数据.
不要考虑内容长度.考虑要发送和处理的数据和数据结构.如果您只想在请求之间发送和处理结构化数据,并且数据大小各不相同,只需使用JSON即可.它是为此而建的.
两种方法之间的内容长度差异不会成为问题的一部分,因为您的应用不是Facebook,Twitter或谷歌怪物.过早优化是万恶之源.