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

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

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

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

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

  1. vue 配合vue-resource调用接口,获取数据

    1.先用node+express+mysql简单配置一下后台 const express = require('express');const mysql = require('mysql');con ...

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

    前言:小程序的开发中总是踩到各种坑,看文档也不知所云: 例如当我们在写微信小程序接口时,method请求方式有POST和GET两种,为了数据安全,我们会偏向于使用POST请求方式访问服务器端: 问题: ...

  3. PHP中使用CURL模拟登录并获取数据实例

    cURL 是一个功能强大的PHP库,使用PHP的cURL库可以简单和有效地抓取网页并采集内容,设置cookie完成模拟登录网页,curl提供了丰富的函数,开发者可以从PHP手册中获取更多关于cURL信 ...

  4. 基于NIO的同步非阻塞编程完整案例,客户端发送请求,服务端获取数据并返回给客户端数据,客户端获取返回数据

    这块还是挺复杂的,挺难理解,但是多练几遍,多看看研究研究其实也就那样,就是一个Selector轮询的过程,这里想要双向通信,客户端和服务端都需要一个Selector,并一直轮询, 直接贴代码: Ser ...

  5. 谷歌翻译使用php curl请求接口文档

    支持语言 阿拉伯语代码 ar 英语代码 en 中文(简体)代码 zh-CN php中curl类常用方法封装和详解 REST API Method translate POST /language/tr ...

  6. PHP 之 CURL 模拟登陆并获取数据

    1.CURL模拟登陆的流程和步骤 2.tempnam 创建一个临时文件 3.使用CURL模拟登陆到PHP100论坛 <?php $cookie_file = tempnam('./temp',' ...

  7. 【转】PHP 之 CURL 模拟登陆并获取数据

    1.CURL模拟登陆的流程和步骤2.tempnam 创建一个临时文件3.使用CURL模拟登陆到PHP100论坛 <?php$cookie_file = tempnam('./temp','coo ...

  8. CURL请求接口

    private function  http_curl($url,$data=null){ //1.初始化,创建一个新cURL资源                 $ch = curl_init(); ...

  9. curl请求接口返回false,错误码60

    我讲一下我遇到的这个问题,是因为最近服务器加了https导致的,网上找到了答案,加上这句 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 就可以正常返 ...

随机推荐

  1. 记录一次idea的git导致的macpro风扇狂转问题

    现象 macpro风扇忽然狂转不停:使用软件Macs Fan Control检测如下:cpu温度持续过高(超过50度),风扇当前转速比较高 解决 观察cpu使用情况,发现git占用cpu很高,而且持续 ...

  2. 【c# 学习笔记】使用virtual和override关键字实现方法重写

    只有基类成员声明为virtual或abstract时,才能被派生类重写:而如果子类想改变虚方法的实现行为,则必须使用override关键字. public class Animal { private ...

  3. python爬取网页数据方法

    """#最基本,请求地址无参数# response=urllib.request.urlopen("https://www.scetc.edu.cn" ...

  4. CentOS使用yum安装jdk

    1.查看系统版本命令 cat /etc/issue 2.查看yum包含的jdk版本 yum search java 或者 yum list java* 版本 jre jdk 1.8 java-1.8. ...

  5. stub_status监控Nginx使用情况!

    stub_status监控Nginx使用情况! 查看nginx安装的模块! # /usr/local/nginx/sbin/nginx -V nginx version: nginx/1.8.1 bu ...

  6. Appium+python启动虚拟机上的app

    查看appPackage和appActivity方法: 1.先在cmd命令行输入  adb logcat ActivityManager:I *:s 2.点击虚拟机启动app即可查看,/前是appPa ...

  7. HashSet和HashMap

    HashMap 概念和特征  概念:以键值对的形式存储数据,由键映射到值,核心在于Key上.  特征:键不能重复,值可以重复:key-value允许为null.     HashMap   Since ...

  8. 剑指offer(9)——用两个栈实现队列

    题目: 用两个栈实现一个队列.队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能. 思路: 首先定义两个栈stack1. ...

  9. Warning: popen() has been disabled for security reasons in OS/Guess.php on line 241

    今天使用pecl install swoole命令编译安装swoole的时候提示:Warning: popen() has been disabled for security reasons in ...

  10. 使用RabbitMQ实现分布式事务

    RabbitMQ解决分布式事务思路: 案例: 经典案例,以目前流行点外卖的案例,用户下单后,调用订单服务,让后订单服务调用派单系统通知送外卖人员送单,这时候订单系统与派单系统采用MQ异步通讯. Rab ...