curl header gzip

场景

有这样一个定时脚本,每天请求接口,获取并且处理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);

你可能感兴趣的:(php)