我使用WordPress 4.1.1。 我尝试安装JSON API插件。
奇怪的字母显示在JSON内容上方。并且在刷新页面后它们会更新。
我试图在插件代码下带另一封信。这些字母出现在这些数字下面,WordPress系统中的问题也是如此?
请帮助我理解并删除它们,因为我无法解析我的JSON。
在localhost上,它可以正常使用相同的属性和数据......
这封信是:7b00c,78709,6eb3d ......他们随着更新而改变..
答案 0 :(得分:0)
奇怪的角色可能是chunk-size
。
当服务器端进程通过HTTP服务器发送响应时,数据通常会在传输到客户端(浏览器)之前存储在缓冲区中。如果整个响应及时适合缓冲区,服务器将在Content-Length:
标头中声明大小,并按原样将响应发送给客户端。
如果响应不适合缓冲区,或者服务器决定在知道完整大小之前出于其他原因而腾出缓冲区,则它将以块的形式发送响应。这由Transfer-Encoding: chunked
标头指示。每个块的前面都是十六进制的长度(后跟一个CRLF
- 对)。响应的结束由0
块大小指示。确切的语法详述如下。
如果您自己解析HTTP响应,则需要考虑各种复杂问题。分块编码就是其中之一。您需要检查Transfer-Encoding: chunked
标头并通过解析和删除chunk-size
部分来汇总响应。
使用cURL这样的库会更容易,它会为您处理所有细节。
避免使用块的一个方法是使用HTTP/1.0而不是HTTP/1.1发送响应。在HTTP / 1.0中,长度由Content-Length:
标头或关闭连接指示。
这是RFC 7230 - "Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing"(ABNF表示法)中指定的分块体的语法:
4.1. Chunked Transfer Coding chunked-body = *chunk last-chunk trailer-part CRLF chunk = chunk-size [ chunk-ext ] CRLF chunk-data CRLF chunk-size = 1*HEXDIG last-chunk = 1*("0") [ chunk-ext ] CRLF chunk-data = 1*OCTET ; a sequence of chunk-size octets trailer-part = *( header-field CRLF )