0

wikimedia api 是否支持 gzip 编码。我正在使用 curl 来获取内容。我使用了接受 gzip 编码。但它似乎不起作用..

curl_setopt($ch,CURLOPT_ENCODING , "gzip");
4

3 回答 3

1

您是否尝试添加 'Accept-Encoding: gzip, deflate' 来获取请求标头?我用这个样本试了一下:

http://pastebin.com/AmndVB3e

它发送了 gzip 压缩的内容。

于 2012-05-07T19:28:10.667 回答
0

回答你的字面问题:是的,确实如此。

对此进行测试的一种方法是安装Firebug并在“Net”选项卡处于活动状态时访问MediaWiki API URL 。您将看到的响应标头应如下所示:

HTTP/1.0 200 正常
日期:格林威治标准时间 2012 年 5 月 7 日星期一 23:05:37
服务器:阿帕奇
X-Content-Type-Options: nosniff
缓存控制:私有
MediaWiki-API-错误:帮助
内容编码:gzip
变化:接受编码
内容长度:37421
内容类型:文本/html;字符集=utf-8
X-Cache:来自 sq59.wikimedia.org 的 MISS,来自 amssq35.esams.wikimedia.org 的 MISS,来自 amssq44.esams.wikimedia.org 的 MISS
X-Cache-Lookup:来自 sq59.wikimedia.org:3128 的 MISS,来自 amssq35.esams.wikimedia.org:3128 的 MISS,来自 amssq44.esams.wikimedia.org:80 的 MISS
连接:保持活动

(不,这不仅仅是因为 Wikipedia 的前端代理;我只是在我自己的 wiki 上尝试了相同的方法,它不在代理后面,并且得到了相同的Content-Encoding标题。)

于 2012-05-07T23:11:12.517 回答
0

试试(让我知道它是否有效,我无法从你的其他 Curl 选项中告诉自己)

curl_setopt($ch, CURLOPT_ENCODING, "deflate, gzip, identity");
于 2012-05-04T11:19:36.697 回答