700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > PHP 利用curl 模拟get post 请求

PHP 利用curl 模拟get post 请求

时间:2019-06-01 03:44:18

相关推荐

PHP 利用curl 模拟get   post 请求

有的时候想爬取点数据,但是网站做了防护,用file_get_contents的话,就会提示无法读取。所以得想点其他方法了,所以就想到了利用php 的curl 模拟post或者get请求

首先是模拟get请求(请求https协议接口)

/*** 传入json数据进行HTTP Get请求** @param string $url $data_string* @return string*/public function http_get($url){$curl = curl_init(); // 启动一个CURL会话curl_setopt($curl, CURLOPT_URL, $url);curl_setopt($curl, CURLOPT_HEADER, 0);curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在$tmpInfo = curl_exec($curl);//返回api的json对象//关闭URL请求curl_close($curl);return $tmpInfo; //返回json对象 }

然后就是 模拟post请求(https)

/*** 传入json数据进行HTTP POST请求** @param string $url $data_string* @return string*/public static function http_post($url,$data_string,$timeout = 60){//curl验证成功$ch = curl_init($url);curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");curl_setopt($ch, CURLOPT_POSTFIELDS,$data_string);curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);//// 跳过证书检查 curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Content-Length: ' . strlen($data_string)));$result = curl_exec($ch);if (curl_errno($ch)) {print curl_error($ch);}curl_close($ch);return $result;}

调用的话 直接就调用就行例如

$url="":

$list=http_get($url);

然后打印下list就能看到 你获取到的数据了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。