curl请求接口的get和post方法

get请求方法

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 "


";
print_r($result);
echo "
";
//第四部 关闭
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 "


";
print_r($result);
echo "
";

//第四部 关闭
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;
}

 

你可能感兴趣的:(PHP技术总结)