/**
* 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;
}