不多說,直接貼代碼,以備今後用到
/**
* 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