服务器有时会返回分块传输编码

时间:2012-04-24 14:51:26

标签: php api

我正在构建一个REST API ..有时服务器会使用chunked transfer encoding返回响应吗?那是为什么?!

为什么服务器不能总是以相同的编码返回响应?

问题是我不知道如何在数据返回时读取数据!?

更新

neeed moore downvotes ... to breeeath ...

3 个答案:

答案 0 :(得分:2)

假设您的服务器正在使用Apache,这是预期的行为。您可以将此行放在.htaccess文件中来禁用它:

SetEnv downgrade-1.0

但是,您应该考虑修改您的阅读代码,以支持不同的内容编码。您使用什么库来发出HTTP请求?任何合理的HTTP库都可以处理分块请求。如果您的请求代码是用PHP编写的,请使用curl。 http://php.net/manual/en/book.curl.php

答案 1 :(得分:1)

取自Server Fault

  1. 指定“Content-Length”标题,因此服务器知道,响应的大小是什么
  2. 在请求方使用HTTP 1.0

答案 2 :(得分:0)

问题可能是Apache正在抓取您的下载,负责纠正内容长度,或者在您的情况下,添加标题

  

Content-Encoding:chunked

您可以添加.htaccess RewriteRule来禁用gzip:

RewriteRule . - [E=no-gzip:1]