问题标签 [chunked-encoding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5389 浏览

c# - C# 使用 WebClient 下载分块编码内容

我编写了一个客户端应用程序,它假设从 Web 服务器下载文件,非常简单:

该网站(音频文件所在的位置:http://localhost/audiotest/audio.wav)具有标头 Transfer-Encoding: chunked

当我运行程序时,我收到以下错误:

服务器违反了协议。Section=ResponseBody Detail=响应块格式无效

当服务器包含 Transfer-Encoding: chunked header 时,如何下载文件?

0 投票
2 回答
2297 浏览

winapi - WinInet - 无法从标头中删除 Content-Length 以手动分块上传

MSDN声明WinInet 不支持分块上传(“客户端代码必须执行分块。”)。对我来说,这意味着我可以手动分块传输。我的意图是通过 HttpAddRequestHeaders 添加“Transfer-Encoding: chunked” ,通过HttpAddRequestHeaders HTTP_ADDREQ_FLAG_REPLACE 删除 Content-Length,然后在我的 InternetWriteFile 循环中,将数据写入分块编码块中。问题是,我似乎无法说服 WinInet 不发送 Content-Length。即使在删除之后,它最终也会向服务器发送“Content-Length: 0”(除了“Transfer-Encoding: chunked”),这会使服务器感到困惑。

我还尝试在HttpSendRequestEx中设置 HSR_CHUNKED 标志。

有没有人有让 WinInet 跳过发送 Content-Length 的示例?

我知道 WinHTTP 声称支持分块上传,但我们对 WinInet 有其他依赖项,这就是为什么我希望尽可能在那里解决问题。

这是我尝试过的代码示例:

0 投票
1 回答
381 浏览

chunked-encoding - 在 .Net 中读取分块的 HTTP

我正在尝试编写一个读取 HTTP 分块数据的 VB.net 客户端。这些块包含我需要使用的附加信息。我已经发现我不能使用 HTTPWebResponse,因为它隐藏了可选标签。所以,按照我的理解,我需要使用 TCPClient,通过它发送 HTTP 请求,然后解析响应。此时我的问题是如何创建和发送 HTTP 请求,尤其是在 HTTPWebRequest 不可序列化的情况下。

任何帮助,包括指示更好的方法来做到这一点,将不胜感激。

0 投票
1 回答
4188 浏览

java - HTTP 多部分和分块可以共存吗?

我正在使用 apacheHttpClient将几个文件发布到服务器。这是代码:

问题是,MultipartEntity类只有isChunked()方法(总是返回 false),如果我希望为我的多部分实体启用卡盘编码,则没有“setChunked(boolean)”选项。

我的问题是:

  1. HTTP 多部分和分块可以根据协议规范共存吗?InputStreamEntity如果没有,为什么像class这样的其他实体有setChunked(boolean)whereMultipartEntity没有?

  2. 有没有办法在启用分块的情况下“一次”发布多个文件,最好是使用 apache 库?

0 投票
1 回答
812 浏览

networking - 如何使用 Wireshark 查看源页面?

是否有可能使用 Wireshark 捕获和查看网站的源页面?我不需要标头数据包,我正在寻找的是我在运行 Wireshark 时打开的任何站点的完整源页面。

0 投票
1 回答
3680 浏览

c# - HttpWebRequest、重定向、实时站点上的分块编码错误,但在本地 IIS Express 上工作

我有一些代码可以使用 C# 创建 HTTP POST WebRequest 并将一些数据发布到 https 站点。然后该站点重定向到一个新的 URL 并返回一些数据。

这在我运行 IIS Express 的本地机器上工作得很好,但在我的生产服务器上抛出一个异常,说Content-Length or Chunked Encoding cannot be set for an operation that does not write data..

这是代码的样子:

有什么想法有什么问题,什么是好的解决方案?

//约翰

0 投票
3 回答
7389 浏览

http - 如果 HTTP/1.0 客户端请求 Connection: keep-alive,它会理解分块编码吗?

如果我的 HTTP 服务器收到带有“Connection: keep-alive”标头的 HTTP/1.0 请求,那么客户端会理解“Transfer-Encoding: chunked”是否公平?

本质上,我正在尝试决定是否尊重来自 HTTP/1.0 客户端的“Connection: keep-alive”标头。如果我确实尊重它,那么我必须对回复使用分块编码,因为我无法缓冲整个回复以计算 Content-Length 标头。

如果期望请求“连接:保持活动”的 HTTP/1.0 客户端也能理解分块编码是不安全的,那么我将不得不在每次回复后关闭连接。(或者我错过了什么?)

0 投票
2 回答
902 浏览

perl - Perl 使用 Unpack 将二进制数据拆分成块

Transfer-Encoding: chunked用来编写 HTTP 响应。

响应通过以下方式分成几部分:

当内容类型为 时,这可以正常工作text/html,但它会破坏二进制数据,例如application/pdf.

unpack用于将二进制数据分成相等的长度?

0 投票
1 回答
501 浏览

iphone - ASIHttprequest 获得分块传输编码的进展?

ASIProgressDelegate setProgress下载分块编码时,该方法总是得到 1?如何获得下载分块编码的进度?谢谢!

0 投票
0 回答
1620 浏览

asp.net - IIS 7.5 压缩和分块传输问题

我不得不渲染一个 json 提要。由于提要的大小约为 10 MB,因此我决定在 ASPNET 中启用压缩。我为 json mime 类型启用了动态压缩。压缩效果很好,并将大小减小到 1 MB(对使用的服务器 CPU 有显着的压缩优势)。

但奇怪的是,浏览器每次花费 2.6 分钟并失败,尽管我看到 JSON 在几秒钟内收到。

我尝试使用提琴手和检查工具进行调试。我看到分块传输编码作为响应。所以浏览器等待大约 150 秒来接收 0 大小的块来完成。

我不会在任何 json 服务中刷新响应。因此 IIS 在这种情况下启用了分块传输。关闭 enableChunkedEncoding 也无济于事。

如何使这种压缩工作或压缩+分块传输一起工作?

这是请求和响应标头。

请求标头

请求网址:http://localhost:8080/Default2.aspx

请求方法:GET

状态码:200 OK

接受编码:gzip、deflate、sdch

响应标头

内容编码:gzip

内容类型:应用程序/json;字符集=utf-8

传输编码:分块

编辑:有趣的是,当压缩响应 < 1 MB 时一切正常。当响应大于 1 MB 时,问题就会蔓延。我在这里创建了测试项目

提前致谢