php CURL 请求

/**
 * curl方式访问url
 * @param   Str     $url 访问url
 * @param   Str     $method 访问方式
 * @param   array   $params 访问时传递的数据
 * @param   boolean $json_ 是否返回json数组
 * @param   array   $headers 访问时需要传递的header参数
 * @return  mixed
 */
protected function requestUrl($url, $method = 'GET', $params = array(), $json_=true,$headers = array())
{
    /**初始化一个数组设置curl*/
    $opts = array(
        CURLOPT_TIMEOUT         => 30,
        CURLOPT_RETURNTRANSFER  => 1,
        CURLOPT_SSL_VERIFYPEER  => false,
        CURLOPT_SSL_VERIFYHOST  => false,
        CURLOPT_HTTPHEADER      => $headers
    );
    /**建立对应的http请求(get or post)*/
    switch (strtoupper($method))
    {
        /**post请求*/
        case 'POST':
            /**设置你需要抓取的URL*/
            $opts[CURLOPT_URL]        = $url;
            $opts[CURLOPT_POST]       = 1;
            $opts[CURLOPT_POSTFIELDS] = json_encode($params);
            break;
        /**get请求*/
        case 'GET':
            $URL_ = $url.'?'.http_build_query($params);
            $opts[CURLOPT_URL]        = $URL_;
            break;
        default:
            return false;
    }

    /**初始化一个 cURL 对象*/
    $curl = curl_init();
    /**运行CURL*/
    $res = curl_setopt_array($curl, $opts);
    $data  = curl_exec($curl);
    $error = curl_error($curl);
    /**关闭URL请求*/
    curl_close($curl);
    /**请求出错*/
    if($error) return false;

    /**转换json数组返回*/
    if ($json_) $data = json_decode($data, true);
    return $data;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章