curl里post、get传值+header代码,复制即用

/**
 * 获取url内容
 * @param $url
 * @param array $param
 * @param array $header
 * @param int $is_post
 * @param int $timeout
 * @return mixed
 */

function curlPost($url, $param = [], $header = [], $is_post = 1, $timeout = 10)
{
    //初始化curl
    $curl = curl_init();

    curl_setopt($curl, CURLOPT_URL, $url); // 设置请求的路径
    if ($is_post == 1) {
        curl_setopt($curl, CURLOPT_POST, 1); //设置POST提交
    }
//    $header[] = 'Content-Length: ' . strlen(json_encode($param));
    curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
    curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //显示输出结果 1 代表 把结果转化为字符串进行处理

//    提交数据
    if ($is_post == 1) {
        if (is_array($param)) {
            $data_string = json_encode($param);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);
        } else {
            curl_setopt($curl, CURLOPT_POSTFIELDS, $param);
        }
    }
    //执行请求
    $data = $data_str = curl_exec($curl);

    //处理错误
    if ($error = curl_error($curl)) {
        $log_data = array(
            'url' => $url,
            'param' => $param,
            'error' => '<span style="color:red;font-weight: bold">' . $error . '</span>',
        );

        var_dump($log_data);
        exit;
    }

    # 关闭CURL
    curl_close($curl);

    //json数据转换为数组
    $data = json_decode($data, true);

    if (!is_array($data)) {
        $data = $data_str;
    }
    return $data;
}

这是我自己生成的header方法,切勿复制

/**
 * 获得header头信息
 * @param $openId
 * @return array
 */
function getHeader($openId)
{
    $accessToken = 'anonymous';
    $authorization = base64_encode("$openId:$accessToken");


    $header = array();
    $header[] = 'Authorization:Bearer ' . $authorization;
    $header[] = 'Accept:application/json';
    $header[] = 'Content-Type:application/json;charset=utf-8';
    return $header;
}

猜你喜欢

转载自blog.csdn.net/weixin_42262935/article/details/82106858