问题标签 [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 投票
0 回答
977 浏览

http - 禁用对分块编码的支持

有没有办法在浏览器中禁用分块编码支持?

0 投票
2 回答
1631 浏览

.net - 我可以告诉 WebRequest 何时从请求流中发送一个块吗?

我正在从 WinForms 应用程序发送 HTTP PUT 请求,并且我想向页面发送缓慢的 PUT 数据涓涓细流,当 PUT 数据到达时,该页面将把消息写入数据库。我正在使用 WebRequest 并将 SendChunked 设置为 true,但它似乎只是在将 8KB 数据写入请求流之后才发送一个块。

更糟糕的是,网页似乎在大约 42KB 后停止接收,并且发送方在大约 77KB 后抛出 WebException 并显示消息“请求中止:请求已取消”。

我实际上在每条消息中发送了非常少量的数据,所以如果我能说服 WebRequest 只发送包含每条消息的一小块,我会没事的。

到目前为止,这是我正在尝试的内容:

我在每条消息之后写了 1KB 的空白,以尝试强制 WebRequest 更快地发送一个块。

0 投票
3 回答
2589 浏览

java - 我可以在几个 readLine() 之后设置 HttpConnectionParams.setSoTimeout()

我正在尝试编写基于 JAVA 的彗星 HTTP 流。我为此使用 apache httpClient 4.x。由于它是彗星 HTTP 流,所有事件都以分块数据的形式到达客户端。由于连接可能会长时间保持打开状态,因此我试图在来自服务器的一些 readLine() 数据之后实现 SO_TIMEOUT 的动态设置。

当我在 BufferedInputStream 的 readLine 之后设置 SO_TIMEOUT 的值时,它没有生效,它仍然使用在 execute() 方法调用之前设置的原始 SO_TIMEOUT 值。

以下是 apache 网站对 SO_TIMEOUT 的定义: 以毫秒为单位定义套接字超时(SO_TIMEOUT),即等待数据的超时时间,或者换句话说,两个连续数据包之间的最大不活动时间)。超时值为零被解释为无限超时。

根据上面的定义,SO_TIMEOUT 值应该在每个分块数据到达时由 apache httpclient 重置。如果是这种情况,它应该接受我更新的 SO_TIMEOUT 值。在从 BufferedInputStream 中读取几行后如何设置 SO_TIMEOUT 值的任何想法?

0 投票
1 回答
222 浏览

.net-4.0 - 有没有办法在 .Net 4.0 中访问分块编码响应中的 Trailer 标头?

使用 HttpWebRequest/Response,并且分块编码响应中的 Trailer 标头被丢弃(我实际上已经逐步浏览了 .Net 4.0 参考源以查看它在最终块之后调用 RemoveTrailers 的位置)。有没有办法检索这些标头?另外,有谁知道为什么这种行为一开始就存在?

如果有人问,不,我不能确保将预告片标题移动到其余标题。这只是我必须使用的数据流格式。

0 投票
1 回答
1050 浏览

http - 中止 HTTP/1.1 块编码响应

是否有标准方法来处理分块响应的响应失败?我已经翻阅了 RFC,但没有看到处理此问题的标准方法。

我对分块响应的理解是,当我们无法在服务器上一次处理整个响应时,它们很有用。因此,似乎有可能在处理响应的部分过程中发生致命错误并且需要终止响应。

我最初的想法是关闭连接是最好的解决方案,但我想确保没有其他方法可以处理这种情况。谢谢。

0 投票
3 回答
2183 浏览

groovy - 使用 HTTPBuilder/Groovy 处理“分块”编码响应

我是使用 groovy 的新手,并且已经开始使用它来测试一些 REST 服务。由于“prolog 中不允许内容”,我在解析来自我们服务的 XML 响应时遇到问题。经过一段时间的搜索,我发现一个帖子说开头可能有一个字节顺序标记。为了补偿,我按照他们的方法在第一个 < 之前修剪字符,然后解析响应。虽然这可行,但我也被告知问题是响应返回为“传输编码:分块”。

使用 HTTPBuilder,有没有办法在不修剪字符的情况下处理分块响应?如果我尝试:

我收到“序言消息中不允许的内容”。然而:

http.request( Method.valueOf("GET"), TEXT )

有效,但需要在将响应发送到 XmlParser 之前修剪文本直到第一个 <。

0 投票
2 回答
840 浏览

c# - 获取分块编码的 url

我需要在 C# 中获取一个带有分块编码的网页(通过 url)。有一些关于它的主题(关于SO,this Chunked Encoding Implementation in .NET(或至少是伪代码)),但我不知道如何在普通的C#中做到这一点。请帮我写代码:)

0 投票
1 回答
939 浏览

asp.net - IIS 7 中的文件代理处理程序

我有一个文件代理IHttpHandler来确保身份验证和记录请求。它在开发服务器和 IIS 6 上运行良好。在 IIS 7 中,我有两个问题:

  1. Microsoft Office(Word、Excel...)使用OPTIONPROPFIND动词发送 WebDAV 请求。ASP.NET 引发异常,因为它不支持它们。有没有办法在 IIS 级别禁用这些动词,使其永远不会到达 ASP.NET?我猜它会返回一个405 Method Not Allowed错误(http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#4xx_Client_Error)。

  2. IIS 7 开启分块编码。在这种情况下,Content-Length标头无效,显然 IIS 7 将其删除:http: //greenbytes.de/tech/webdav/rfc2616.html#rfc.section.4.4。但是,它也会删除Content-Type标题,导致文件在浏览器中显示为文本。那么如何阻止 IIS 7 删除Content-Type,或者如何关闭这一页的分块编码?以下是供您比较的响应标头。

开发服务器响应:

IIS 7 响应:

0 投票
1 回答
967 浏览

php - Twitter Streaming API OAuth - 分块响应

我正在使用 Phiehose PHP Twitter Streaming API 并进行了一些修改,以便它也可以与 OAuth 一起使用。

但是,当我访问 Twitter Streaming API 时,我得到一个“Transfer-Encoding: Chunked”标题作为答案,这是通过管道传递的:

Phihose Streaming Client 使用裸 PHP 流连接到 Twitter API。但是,它似乎不理解或不支持分块的 HTTP 答案。

我现在的问题是:应该如何处理?您如何解析或使用分块的 HTTP 响应?

0 投票
1 回答
3891 浏览

http - 此响应是否正确编码?

我收到以下标头以响应 Web 请求:

问题:

  1. 这是一个有效的或正确编码的分块响应吗?我在那里看不到任何长度为 0 的块。我错过了什么?