• CURL访问举例


    <?php
     function request($url, $params = [], $requestMethod = 'GET', $jsonDecode = true, $headers = [])
        {
            $ci = curl_init();
            curl_setopt($ci, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
            curl_setopt($ci, CURLOPT_USERAGENT, '1001 Magazine v1');
            curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, 10);
            curl_setopt($ci, CURLOPT_TIMEOUT, 10);
            curl_setopt($ci, CURLOPT_RETURNTRANSFER, TRUE);
            curl_setopt($ci, CURLOPT_ENCODING, "");
            curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, FALSE);
            curl_setopt($ci, CURLOPT_HEADER, FALSE);
    
            $requestMethod = strtoupper($requestMethod);
            switch ($requestMethod) {
                case 'POST':
                    curl_setopt($ci, CURLOPT_POST, TRUE);
                    if ($params) {
                        curl_setopt($ci, CURLOPT_POSTFIELDS, $params);
                    } else {
                        curl_setopt($ci, CURLOPT_POSTFIELDS, ''); // Don't know why: if not set,  413 Request Entity Too Large
                    }
                    break;
                case 'DELETE':
                    curl_setopt($ci, CURLOPT_CUSTOMREQUEST, 'DELETE');
                    if ($params) {
                        $url = $url."?".$params;
                    }
                    break;
                case 'GET':
                    if ($params) {
                        $sep = false === strpos($url, '?') ? '?' : '&';
                        $url .= $sep . http_build_query($params);
                    }
                    break;
                case 'PUT':
                    if ($params) {
                        curl_setopt($ci, CURLOPT_CUSTOMREQUEST, "PUT");
                        curl_setopt($ci, CURLOPT_POSTFIELDS, $params);
                    }
                    break;
            }
            //$headers[] = "APIWWW: " . $_SERVER['REMOTE_ADDR'];
            curl_setopt($ci, CURLOPT_URL, $url);
            curl_setopt($ci, CURLOPT_HTTPHEADER, $headers);
            curl_setopt($ci, CURLINFO_HEADER_OUT, TRUE);
    
            $response = curl_exec($ci);
            $httpCode = curl_getinfo($ci, CURLINFO_HTTP_CODE);
            $return = [
                'httpcode' => $httpCode,
                'data' => $httpCode >= 300 ? $response : ($jsonDecode ? json_decode($response, true) : $response),
                'response' => $response
            ];
            //$httpInfo = curl_getinfo($ci);
            curl_close($ci);
            return $return;
        }
    
        $res = request('http://www.che168.com/Handler/ScriptCarList_V1.ashx?needData=1',[],'GET',false);
    
    ?>
    
  • 相关阅读:
    【luogu P4139】 上帝与集合的正确用法
    pb_ds学习
    【luogu P3868】 [TJOI2009]猜数字
    BZOJ3040: 最短路(road)
    【luogu P1064】 金明的预算方案
    【luogu P2893】 [USACO08FEB]修路Making the Grade
    【luogu P2801】 教主的魔法
    UVA10816 Travel in Desert
    P2916 [USACO08NOV]安慰奶牛Cheering up the Cow
    【BZOJ 2054】 疯狂的馒头
  • 原文地址:https://www.cnblogs.com/Maopei/p/7307808.html
Copyright © 2020-2023  润新知