我正在尝试将此 CrunchBase API 页面作为 PHP 中的字符串。当我在浏览器中访问该页面时,我得到了完整的响应(大约 230K 个字符);但是,当我尝试在脚本中获取页面时,响应要短得多(服务器上的 24341 个字符和本地的 36629 个字符,其他长 CrunchBase 页面的字符数完全相同)。为了获取该页面,我使用了与drupal_http_request()几乎相同的函数,尽管我没有使用 Drupal。(我也尝试过使用 cURL 和 file_get_contents() 并得到了相同的结果。现在我正在考虑它,我过去在 Python 中的 CrunchBase 也经历过同样的事情。)
可能是什么原因造成的,我该如何解决?PHP 5.3.2、Apache 2.2.14、Ubuntu 10.04。以下是有关响应的其他详细信息:
[protocol] => HTTP/1.1
[headers] => Array
(
[content-type] => text/javascript; charset=utf-8
[connection] => close
[status] => 200 OK
[x-powered-by] =>
[etag] => "d809fc56a529054e613cd13e48d75931"
[x-runtime] => 0.00453
[content-length] => 230310
[cache-control] => private, max-age=0, must-revalidate
[server] => nginx/1.0.10 + Phusion Passenger 3.0.11 (mod_rails/mod_rack)
)
我不认为这是我User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6
在请求中使用的用户代理问题。
更新
根据这个线程,我需要将Accept-Encoding: gzip, deflate
标头添加到请求中。这确实会导致请求结果更长,但现在我必须弄清楚如何膨胀它。gzinflate ()函数失败并显示Warning: Data error
. 关于如何夸大响应的任何想法?