与规范相比,我很好奇分块数据的正确格式以及 Twitter 从他们的活动流中返回的内容。
当使用 curl 尝试从 Twitter 获取 Chunked 流时,curl 报告:
~$ curl -v https://stream.twitter.com/1/statuses/sample.json?delimited=length -u ...:...
< HTTP/1.1 200 OK
< Content-Type: application/json
< Transfer-Encoding: chunked
<
1984
{"place":null,"text":...
1984
{"place":null,"text":...
1984
{"place":null,"text":...
我已经根据维基百科信息和 HTTP 规范(本质上是:\r\n\r\n)编写了一个分块数据发射器,我的结果如下所示:
~$ curl -vN http://localhost:7080/stream
< HTTP/1.1 200 OK
< Content-Type: application/json; charset=UTF-8
< Transfer-Encoding: chunked
<
{"foo":{"bar":...
{"foo":{"bar":...
{"foo":{"bar":...
不同之处在于,Twitter 似乎将字符串的长度作为整数的一部分作为块体的一部分(连同必须存在的十六进制值一起),我想确保我是没有遗漏什么。Twitter 文档没有提到长度值,不在他们的示例中,我在规范中也没有看到任何关于它的内容。