• curl请求


    /**
     * @param string $url 请求地址
     * @param array|string $params 请求参数
     * @param string $method 请求方法
     * @param array $header 请求头
     * @param bool $multi post 数据是否进行url encode
     * @param bool $httpCode 是否返回http code
     * @return mixed
     * @throws Exception
     */
    function curlHttp($url, $params, $method = 'GET', $header = [], $multi = false, $httpCode = false)
    {
        $opts = [
            CURLOPT_TIMEOUT        => 10,
            CURLOPT_RETURNTRANSFER => 1,
            CURLOPT_SSL_VERIFYPEER => false, //不做证书校验,部署在linux环境下改为true
            CURLOPT_HTTPHEADER     => $header
        ];
    
        //根据请求类型设置特定参数
        switch(strtoupper($method)) {
            case 'GET':
                if(!empty($params)){
                    $url .= '?' . http_build_query($params);
                }
                $opts[CURLOPT_URL] = $url;
                break;
            case 'POST':  //判断是否传输文件
                $params = $multi ? $params : http_build_query($params);
                $opts[CURLOPT_URL] = $url;
                $opts[CURLOPT_POST] = 1;
                $opts[CURLOPT_POSTFIELDS] = $params;
                break;
            default:
                throw new Exception('不支持的请求方式!');
        }
        /* 初始化并执行curl请求 */
        $ch = curl_init();
    
        curl_setopt_array($ch, $opts);
    
        $data  = curl_exec($ch);
        $httpStatus = curl_getinfo($ch, CURLINFO_HTTP_CODE); //HTTPSTAT码
    
        if($errorCode = curl_errno($ch)){
            $data = json_encode(['code' => 1,'msg' => curl_error($ch)]);
        }
        curl_close($ch);
    
        if($httpCode){
            $result = [
                'data' => $data,
                'httpCode' => $httpStatus
            ];
            return $result;
        }
    
        return $data;
    }


  • 相关阅读:
    app被Rejected 的各种原因翻译
    UIView Border color
    Centos7下安装docker
    利用Yum彻底移除docker
    Docker删除全部镜像和容器
    【转】哈哈笑一笑
    【转】KAFKA分布式消息系统
    java读取properties文件
    java反序列化php序列化的对象
    Java 1.7.0_06中String类内部实现的一些变化【转】
  • 原文地址:https://www.cnblogs.com/yangjiayu/p/11157506.html
Copyright © 2020-2023  润新知