php curl请求接口并获取数据

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

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

<?php

/**
 * Created by PhpStorm.
 * User: thinkpad
 * Date: 2015/7/17 0017
 * Time: 13:24
 */
class Action
{
    public static function curl_get($url){

           $testurl = $url;
           $ch = curl_init();
           curl_setopt($ch, CURLOPT_URL, $testurl);
            //参数为1表示传输数据,为0表示直接输出显示。
           curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            //参数为0表示不带头文件,为1表示带头文件
           curl_setopt($ch, CURLOPT_HEADER,0);
           $output = curl_exec($ch);
           curl_close($ch);
           return $output;
     }
    /*
     * url:访问路径
     * array:要传递的数组
     * */
    public static function curl_post($url,$array){

        $curl = curl_init();
        //设置提交的url
        curl_setopt($curl, CURLOPT_URL, $url);
        //设置头文件的信息作为数据流输出
        curl_setopt($curl, CURLOPT_HEADER, 0);
        //设置获取的信息以文件流的形式返回,而不是直接输出。
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        //设置post方式提交
        curl_setopt($curl, CURLOPT_POST, 1);
        //设置post数据
        $post_data = $array;
        curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
        //执行命令
        $data = curl_exec($curl);
        //关闭URL请求
        curl_close($curl);
<span style="white-space:pre">	</span>//获得数据并返回
        return $data;
    }
}

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-29 12:05:26

php curl请求接口并获取数据的相关文章

用php curl请求接口碰到的问题总结

用php curl请求接口碰到的问题 今天碰到个用php扩展curl类库命令实现linux curl的情况,碰到了一些小问题,总结总结. 场景 向资源方请求实现某种功能.相关同学给出了例子: curl -v -XPOST -u username:abcpass\; -H "Content-Type: application/json" --data '{"sv":"ddcd"}' 'http://api.test.com/alert' 先找框架里

PHP通过CURL模拟登录并获取数据

<?php/*通过CURL模拟登录并获取数据 一些网站需要权限认证,必须登录网站后,才能有效地抓取网页并采集内容, 这就需要curl来设置cookie完成模拟登录网页,php的curl在抓取网页内容方 面效率是比较高的,而且支持多线程,而file_get_contents()效率就要稍低 些.模拟登录的代码如下所示:*/ function login_post($url, $cookie, $post){ $ch = curl_init(); //初始化curl模块 curl_setopt($c

PHP中用curl请求接口

<?php $url="http://api.xxxx.com/api/articles/1138121/comments?strategy=hot"; $headers=array( 'common-info:{"device_platform": "web","language":"tr","auth_type":1,"user_id":'.35897756

微信小程序:wx.request之post请求后端无法获取数据的问题

前言:小程序的开发中总是踩到各种坑,看文档也不知所云: 例如当我们在写微信小程序接口时,method请求方式有POST和GET两种,为了数据安全,我们会偏向于使用POST请求方式访问服务器端: 问题:当我们使用POST方式请求时,后端无法获取数据,但使用GET方式便可以获取数据?? 解决办法: 设置请求的 header: header: { "Content-Type": "application/x-www-form-urlencoded" }, 例如:

https开头的URL接口无法获取数据并报错: PKIX path building failed

大概介绍:php语言写的接口,通过get或post方式获取里面的数据.但是是以https开头的URL 原因:https网址向客户的要证书 解决方案:跳过证书验证部分 package com.scheduler; import javax.net.ssl.HostnameVerifier; import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.SSLSession; import java.io.BufferedReader;

C#/.NET使用HttpWebRequest、SqlBulkCopy从API获取数据批量插入DB

小弟新手程序员一枚,代码技术和文章水平均不才.所写文章均为对自己所写所学代码的简单记录,可能对于老手程序员营养价值不高,望莫见怪. 我工作上有个需求:从某处API接口上获取数据(大约1W条而已)并插入到数据库中. 楼主刚毕业菜鸟,没做过批量插入操作.借助baidu搜索得知SqlBulkCopy可以实现.SqlBulkCopy相关的原理,我现在还没了解就不摆弄了,以后补上! (不要问为什么不用google,公司内网就连msdn.microsoft.com都不给上!另外我公司是开发C#/.NET的,

curl提交表单返回数据的封装

/**  * 通过curl提交表单获取数据  * @param array $post 需要提交的数据  * @param string $url 需要提交到的地址  * @return array $is_success 返回的数据  */ function getInfoByCurl($post,$url){     //初始化一个curl会话,返回一个curl句柄,供curl_setopt(), curl_exec()和curl_close() 函数使用     $ch=curl_init

thinkphp5.0 CURL用post请求接口数据

//测试 请求接口 public function index(){ $arr = array('a'=>'555','b'=>56454564); $data=$this->post_json_data(json_encode($arr)); dump(json_decode($data['result'],true)); } //测试 接口 public function postTest(){ //显示获得的数据 if($this->request->isPost())

防抖与节流 &amp; 若每个请求必须发送,如何平滑地获取最后一个接口返回的数据

博客地址:https://ainyi.com/79 日常浏览网页中,在进行窗口的 resize.scroll 或者重复点击某按钮发送请求,此时事件处理函数或者接口调用的频率若无限制,则会加重浏览器的负担,界面可能显示有误,服务端也可能出问题,导致用户体验非常糟糕 此时可以采用 debounce(防抖)和 throttle(节流)的方式来减少事件或接口的调用频率,同时又能实现预期效果 防抖:将几次操作合并为一此操作进行.原理是维护一个计时器,规定在 delay 时间后触发函数,但是在 delay