不多说,直接贴代码,以备今后用到
/** * 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