php curl POST 和 GET 两种方式调用url
get请求是最简单的请求,不过要注意自己的请求是http请求还是https的请求,因为https请求时要关闭SSL验证,不然验证通不过,没有办法请求到数据;
GET请求的参数
get传递参数和正常请求url传递参数的方式一样
$queryUrl = "http://*************"; $ch = curl_init(); //设置选项,包括URL curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); //执行并获取HTML文档内容 $output = curl_exec($ch); //释放curl句柄 curl_close($ch); echo $output;
HTTPS请求时要注意SSL验证
$queryUrl = "http://*************"; $ch = curl_init(); //设置选项,包括URL curl_setopt($ch, CURLOPT_URL, $queryUrl); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//绕过ssl验证 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //执行并获取HTML文档内容 $output = curl_exec($ch); //释放curl句柄 curl_close($ch); echo $output;
以上就是要注意的,其它的如果有验证的话就自己加上就好了。
POST请求的参数 [json格式传参]
$data = [ 'result' => [ 'module' => $module, 'method' => $method, 'param' => $param ], ]; $jsonData = json_encode($data); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, self::$baseUrl); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Content-Length: ' . strlen($jsonData))); $response = curl_exec($ch); curl_close($ch); echo $response;