gpt4 book ai didi

php - net::ERR_INCOMPLETE_CHUNKED_ENCODING 是什么意思,我该如何解决?

转载 作者:行者123 更新时间:2023-11-28 01:44:27 25 4
gpt4 key购买 nike

我正在编写一个从 Bing Ads API 生成报告的网络应用程序,按照此处看到的示例:

http://msdn.microsoft.com/en-us/library/bing-ads-reporting-request-and-download-a-keyword-performance-report-in-php.aspx

我已经编译了代码,但是在运行时,服务器突然结束请求并在此代码块的开头返回 ERR_INCOMPLETE_CHUNKED_ENCODING:

$waitTime = 30 * 1; 
$reportRequestStatus = null;

// This sample polls every 30 seconds up to 5 minutes.
// In production you may poll the status every 1 to 2 minutes for up to one hour.
// If the call succeeds, stop polling. If the call or
// download fails, the call throws a fault.

for ($i = 0; $i < 10; $i++)
{
sleep($waitTime);

// PollGenerateReport helper method calls the corresponding Bing Ads service operation
// to get the report request status.

$reportRequestStatus = PollGenerateReport(
$proxy,
$reportRequestId
);

if ($reportRequestStatus->Status == ReportRequestStatusType::Success ||
$reportRequestStatus->Status == ReportRequestStatusType::Error)
{
break;
}
}

我试图打印出值并逐行调试它,但我无法弄清楚是什么导致了这个错误。谷歌搜索错误也不会带来任何相关信息。我想知道以前是否有其他人遇到过此错误,并能告诉我是什么原因造成的?

谢谢!

最佳答案

如果我没记错的话 - 这是由于您的服务器配置为处理各种请求的方式所致。

ASP.NET 有一些配置设置,但简而言之,如果您在分块请求完成之前刷新缓冲区,您将收到此错误。这是我前段时间遇到类似问题时找到的链接。祝你好运!

编辑:此外,这里还有一个 IIS 页面,描述了如何启用可能导致您的问题的响应处理:启用或禁用 HTTP 1.1 分块传输编码

To enable HTTP 1.1 chunked transfer encoding for the World Wide Web publishing service, use the following syntax: appcmd set config /section:asp /enableChunkedEncoding:True|False True enables HTTP 1.1 chunked transfer encoding whereas False disables HTTP 1.1 chunked transfer encoding. The default value is True.

..

and

To specify the default length of time that ASP pages let a script run before terminating the script and writing an event to the Windows Event Log, use the following syntax: appcmd set config /section:asp /scriptTimeout: timeSpan The variable timeSpan represents the maximum time (hh:mm:ss) that an ASP request can run before an event is written to the Windows Event Log. The default value is 00:01:30. http://technet.microsoft.com/en-us/library/cc730855(v=ws.10).aspx

这家伙也解释得很好:

ASP.NET transfers the data to the client in chunked encoding (Transfer-Encoding: chunked), if you prematurely flush the Response stream for the Http request and the Content-Length header for the Response is not explicitly set by you.

通常这应该不是问题,因为大多数现代 HTTP 客户端 能够处理分块和非分块服务器 响应,自动对分块的响应进行去分块(注意 分块传输编码仅由 HTTP 1.1 规范定义。

但是,在我自己的例子中,我正在对一个异步 Ajax 调用 来自 javascript 的 ASP.NET Web 服务。和网络方法处理 request 将 Response 显式刷新给客户端,然后关闭 响应(我需要这样做,因为请求是从 ExtJs 存储的自动加载调用,我需要关闭 服务器上的连接,供客户端 Store 接受和加载 json 序列化数据)。

http://www.rahulsingla.com/blog/2010/06/asp-net-sets-the-transfer-encoding-as-chunked-on-premature-flushing-the-response

关于php - net::ERR_INCOMPLETE_CHUNKED_ENCODING 是什么意思,我该如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23704651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com