php curl请求接口并获取数据

Posted true-love

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php curl请求接口并获取数据相关的知识,希望对你有一定的参考价值。

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

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

  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);的方式调用接口并得到数据了。


以上是关于php curl请求接口并获取数据的主要内容,如果未能解决你的问题,请参考以下文章

php curl post 获取数据接口 同步局域网 人脸识别设备数据

php curl如何直接转发当前php接收的headers?get请求如何直接转发get参数?post请求如何直接转发post参数?

PHP中怎样发送post请求并获取网页?

PHP页面爬虫

如何在php中获取curl请求的请求头信息及相应头信息

php的curl获取https加密协议请求返回json数据进行信息获取