3

有没有人有任何经验,其中请求的文件下载(HTTP)标题中的内容长度不等于下载时的实际文件长度(大小)?

4

3 回答 3

1

内容长度标头是 HTTP 响应正文中的字节数。

这是在所有编码阶段之后计算的,大多数编码方法都会改变长度。

  • 压缩会缩小它
  • Base 64 会增加它。

内容长度标头仅在从套接字读取多少原始数据方面有用。分配一个缓冲区来保存解码的内容将无济于事。

(我刚刚编写了一些代码来拉取数据,但必须读取响应流以增量方式扩展缓冲区,而不是大量分配读取。)

于 2010-04-17T08:50:02.467 回答
0

您提出问题的方式具有误导性。

当 HTTP 响应带有 content-length 标头时,这就是消息的长度。时期。好吧,除了 HEAD 响应。

如果服务器发送的数量超过此数量,则它已损坏。

于 2010-04-17T09:27:17.650 回答
-1

你可以WebClient.DownloadTaskAsync(...)改用。文件大小将相同。

于 2018-07-12T13:01:30.777 回答