wikimedia api 是否支持 gzip 编码。我正在使用 curl 来获取内容。我使用了接受 gzip 编码。但它似乎不起作用..
curl_setopt($ch,CURLOPT_ENCODING , "gzip");
您是否尝试添加 'Accept-Encoding: gzip, deflate' 来获取请求标头?我用这个样本试了一下:
它发送了 gzip 压缩的内容。
回答你的字面问题:是的,确实如此。
对此进行测试的一种方法是安装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
标题。)
试试(让我知道它是否有效,我无法从你的其他 Curl 选项中告诉自己)
curl_setopt($ch, CURLOPT_ENCODING, "deflate, gzip, identity");