zoukankan      html  css  js  c++  java
  • 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);
    
    ?>
    
  • 相关阅读:
    Fedora/CentOS使用技巧
    Haproxy配置
    iscsi使用教程
    Linux网络配置
    Linux命令使用
    luogu-1908 逆序对 离散化+树状数组
    算法题目签到表
    [笔记-机器学习]贝叶斯分类器的原理及实现
    [笔记-数据结构]树状数组
    [笔记-数据结构]哈希表
  • 原文地址:https://www.cnblogs.com/Maopei/p/7307808.html
Copyright © 2011-2022 走看看