php curl请求接口并获取数据

来源:互联网 发布:cf刷枪软件制作 编辑:程序博客网 时间:2024/05/20 22:29

当我们在做php开发的时候,很多时候需要对接口进行测试,或者更方便的调用一些已有模块的接口,取到结果并进行后续操作,我们可以通过curl进行模拟提交post和get请求,来去实现这些功能。

下面是对curl的post和get的封装

[html] view plain copy
print?
  1. <?php  
  2.   
  3. /**  
  4.  * Created by PhpStorm.  
  5.  * User: thinkpad  
  6.  * Date: 2015/7/17 0017  
  7.  * Time: 13:24  
  8.  */  
  9. class Action  
  10. {  
  11.     public static function curl_get($url){  
  12.   
  13.            $testurl = $url;  
  14.            $ch = curl_init();    
  15.            curl_setopt($ch, CURLOPT_URL, $testurl);    
  16.             //参数为1表示传输数据,为0表示直接输出显示。  
  17.            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
  18.             //参数为0表示不带头文件,为1表示带头文件  
  19.            curl_setopt($ch, CURLOPT_HEADER,0);  
  20.            $output = curl_exec($ch);   
  21.            curl_close($ch);   
  22.            return $output;  
  23.      }  
  24.     /*  
  25.      * url:访问路径  
  26.      * array:要传递的数组  
  27.      * */  
  28.     public static function curl_post($url,$array){  
  29.   
  30.         $curl = curl_init();  
  31.         //设置提交的url  
  32.         curl_setopt($curl, CURLOPT_URL, $url);  
  33.         //设置头文件的信息作为数据流输出  
  34.         curl_setopt($curl, CURLOPT_HEADER, 0);  
  35.         //设置获取的信息以文件流的形式返回,而不是直接输出。  
  36.         curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);  
  37.         //设置post方式提交  
  38.         curl_setopt($curl, CURLOPT_POST, 1);  
  39.         //设置post数据  
  40.         $post_data = $array;  
  41.         curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);  
  42.         //执行命令  
  43.         $data = curl_exec($curl);  
  44.         //关闭URL请求  
  45.         curl_close($curl);  
  46.       //获得数据并返回  
  47.         return $data;  
  48.     }  
  49. }  

之后就可以通过CURL::curl_post($url,$array)或者CURL::curl_get($url);的方式调用接口并得到数据了。