get请求方法
<?php
header("Content-type:text/html;charset=utf-8");
/**
* 使用curl 分为4步:
* 第一步,初始化 $ch = curl_init();
* 第二步:进行配置 curl_setopt() //记忆方法:set配置 option选项
* 第三步:执行--发送请求curl_exec()
* 第四步:关闭curl资源 curl_close();
*/
//第一步
$ch = curl_init();
//第二步 配置
$url = "http://www.jxshop.com/index.php/Admin/API/getGoodsByCatAPI/catName/你好啊";
curl_setopt($ch,CURLOPT_URL,$url);
//增加配置,不让结果默认显示,并且可以接收
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//0是默认值,默认把数据展示 1 不展示数据,可以接收 RETURN返回 TRANSFER转义、运输
//第三部 执行
$result = curl_exec($ch);
/*
* 说明:curl在发送请求后,会默认把数据输出,无法接收
*/
$result = json_decode($result,1);
echo "<hr><pre>";
print_r($result);
echo "</pre>";
//第四部 关闭
curl_close($ch);
POST请求方法
/**
* 使用curl 分为4步:
* 第一步,初始化 $ch = curl_init();
* 第二步:进行配置 curl_setopt() //记忆方法:set配置 option选项
* 第三步:执行--发送请求curl_exec()
* 第四步:关闭curl资源 curl_close();
*/
//第一步
$ch = curl_init();
//第二步 配置
$url = "http://www.jxshop.com/index.php/Admin/API/getGoodsByCatAPI";
$data = array('catName'=>"php",'u_id'=>128);//配置post需要传递的数组值,传递多个也行
curl_setopt($ch,CURLOPT_URL,$url);
//增加配置,不让结果默认显示,并且可以接收
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//0是默认值,默认把数据展示 1 不展示数据,可以接收 RETURN返回 TRANSFER转义、运输
//添加配置,告诉curl我要用POST方式请求,因为curl发送请求的方式默认是get
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);//设置POST需要传递的值
//第三部 执行
$result = curl_exec($ch);
/*
* 说明:curl在发送请求后,会默认把数据输出,无法接收
*/
$result = json_decode($result,1);
echo "<hr><pre>";
print_r($result);
echo "</pre>";
//第四部 关闭
curl_close($ch);
下面为封装的curl函数,
/**
* curl方式访问url
* @param $url 访问url
* @param int $flbg 返回结果是否通过json_decode转换成数组 0 转换 1 不转换
* @param int $type 访问方式 0 get 1 post
* @param array $post_data post访问时传递的数据
* @param array $headers 访问时需要传递的header参数
* @return mixed
*/
function requestUrl($url, $flbg = 0, $type = 0, $post_data = array(), $headers = array())
{
// 初始化一个 cURL 对象
$curl = curl_init();
// 设置你需要抓取的URL
curl_setopt($curl, CURLOPT_URL, $url);
// 设置header
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
// 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
if (($type == 1) or (count($post_data) != 0)) { // post请求
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post_data));
}
// 运行cURL,请求网页
$data = curl_exec($curl);
// 关闭URL请求
curl_close($curl);
if (!$flbg) {
$data = json_decode($data, true);
}
return $data;
}