Правильный формат кодированной передачи - PullRequest
0 голосов
/ 31 января 2012

Мне любопытно, какой формат чанкованных данных подходит по сравнению со спецификацией и что Twitter возвращает из потока своих действий.

При использовании curl для получения потока Chunked из Twitter, 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 не упоминается значение длины, оно отсутствует в их примерах , и я ничего не вижу в спецификации.

1 Ответ

0 голосов
/ 31 января 2012

Если ваш код не выдает информацию о длине, это явно неверно. Смотри http://greenbytes.de/tech/webdav/rfc2616.html#rfc.section.3.6.1.

...