场景
有这样一个定时脚本,每天请求接口,获取并且处理2亿条数据
这样为了节省流量, 肯定需要需要使用gzip的方式请求
分析
curl方式
. CURLOPT_HTTPHEADER 设置请求头,gzip 压缩
. CURLOPT_ENCODING 解码gzip Accept-Encoding:
解决
$params = compact('field1', 'field2', 'field3');
$url = $this->request_url . http_build_query($params);
$curl = curl_init();
//在http 请求头加入 gzip压缩
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Accept-Encoding:gzip'));
//curl返回的结果,采用gzip解压
curl_setopt($curl, CURLOPT_ENCODING, "gzip");
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$gray_info = curl_exec($curl);
// curl debug
if(curl_errno($curl)){
$msg_curl = 'Curl error: ' . curl_error($curl);
genLog($msg_curl);
}
curl_close($curl);