不多说,直接贴代码,以备今后用到
/**
* curl发送http请求
* @param string $url url地址
* @param array $arr post要提交的参数,键值数组
* @param cookie $cookie post要提交的参数,多个参数用分号隔开
* @parma string $type 请求类型,默认get
* @parma boolean $json 是否返回json 默认是json返回
*/
function http_curl($url, $arr = '', $type = 'get', $cookie = '' ,$header = '0', $json = true)
{
$ch = curl_init();//初始化curl
//不验证ssl
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_URL, $url);//抓取指定网页
curl_setopt($ch, CURLOPT_HEADER, $header);//设置header
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
curl_setopt($ch,CURLOPT_COOKIE, $cookie);//带cookie参数
//curl_setopt($ch,CURLOPT_COOKIE, 'user=***;key=***');
if ($type == 'post') {
curl_setopt($ch, CURLOPT_POST, 1);
if ($arr) {
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($arr));//处理二维数组
// curl_setopt($ch, CURLOPT_POSTFIELDS, $arr);//一维数组
}
}
$data = curl_exec($ch);//运行curl
curl_close($ch);
if ($json) {
return json_decode($data, true);
} else {
return $data;
}
}
调用:
普通登录
public function login(){
$url = 'http://openapi.fairsense.cn/api/v2/project/user/login';
$param = [
'username'=>'*****',
'password'=>'*****@'
];
$result = http_curl($url,$param,'post');//post调用
return $result;
}
带cookie参数的调用
public function stations(){
$url = 'http://openapi.fairsense.cn/api/v2/stations';
$result = self::login();
if($result){
$param = [];
//cookie值,字符串类型,多字段中间用分号隔开
$cookie = 'username=zzjkq;'.'ssid='.$result;
$data = http_curl($url,$param,'post',$cookie);
}
}
备注:前面看到一个写的不错的文章,适合我这种新手,贴上网址先http://www.php.cn/php-weizijiaocheng-393305.html