如果传输编码被分块,如何知道 HTTP 响应块的大小。我无法获得逻辑。请帮助我。并提供一些示例 java 代码来获取块的大小。我在一些书中读到,每个块的大小是在块本身之前指定的。但是使用哪种逻辑我可以得到它。请帮助我使用java。
谢谢你。
如果传输编码被分块,如何知道 HTTP 响应块的大小。我无法获得逻辑。请帮助我。并提供一些示例 java 代码来获取块的大小。我在一些书中读到,每个块的大小是在块本身之前指定的。但是使用哪种逻辑我可以得到它。请帮助我使用java。
谢谢你。
无法提供现成的代码,但 Apache HttpClient 库支持开箱即用的“一切”。
这是分块响应的维基百科示例。在读取正文部分之前,您不知道数据的确切字节大小。请注意每个块的大小是十六进制值,最后一个 0 大小的块是数据的结尾。它也由 2 字节的 CRLF 分隔符终止。
Transfer-Encoding: chunked\r\n
Content-Type: text/plain\r\n
\r\n
4\r\n
Wiki\r\n
5;extkey=extvalue\r\n
pedia\r\n
E\r\n
.in\r\n
\r\n
chunks.\r\n
0\r\n
AfterBodyHeader: some value\r\n
AfterBodyHeader2: any value\r\n
\r\n
此示例使用 \r\n 占位符来指示规范要求的 2 字节分隔符