function curl($url,$method,$params,$auth){
    //初始化CURL句柄
        $curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $url);//设置请求的URL
        #curl_setopt($curl, CURLOPT_HEADER, false);// 不要http header 加快效率
        curl_setopt($curl, CURLOPT_RETURNTRANSFER,1); //设为TRUE把curl_exec()结果转化为字串,而不是直接输出

//SSL验证
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);    // https请求时要设置为false 不验证证书和hosts  FALSE 禁止 cURL 验证对等证书(peer's certificate), 自cURL 7.10开始默认为 TRUE。从 cURL 7.10开始默认绑定安装。 
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);//检查服务器SSL证书中是否存在一个公用名(common name)。

$header[] = "Content-Type:application/json;charset=utf-8";
        if(!empty($header)){
            curl_setopt ( $curl, CURLOPT_HTTPHEADER, $header );//设置 HTTP 头字段的数组。格式: array('Content-type: text/plain', 'Content-length: 100') 
        }

//请求时间
        $timeout = 30;
        curl_setopt ($curl, CURLOPT_CONNECTTIMEOUT, $timeout);//设置连接等待时间

//不同请求方法的数据提交
        switch ($method){
            case "GET" :
                curl_setopt($curl, CURLOPT_HTTPGET, true);//TRUE 时会设置 HTTP 的 method 为 GET,由于默认是 GET,所以只有 method 被修改时才需要这个选项。 
                break;
            case "POST":
                if(is_array($params)){
                    $params = json_encode($params,320);
                }
                #curl_setopt($curl, CURLOPT_POST,true);//TRUE 时会发送 POST 请求,类型为:application/x-www-form-urlencoded,是 HTML 表单提交时最常见的一种。
                #curl_setopt($curl, CURLOPT_NOBODY, true);//TRUE 时将不输出 BODY 部分。同时 Mehtod 变成了 HEAD。修改为 FALSE 时不会变成 GET。
                curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");//HTTP 请求时,使用自定义的 Method 来代替"GET"或"HEAD"。对 "DELETE" 或者其他更隐蔽的 HTTP 请求有用。 有效值如 "GET","POST","CONNECT"等等;
                //设置提交的信息
                curl_setopt($curl, CURLOPT_POSTFIELDS,$params);//全部数据使用HTTP协议中的 "POST" 操作来发送。
                break;
            case "PUT" :
                curl_setopt ($curl, CURLOPT_CUSTOMREQUEST, "PUT");
                curl_setopt($curl, CURLOPT_POSTFIELDS,json_encode($params,320));
                break;
            case "DELETE":
                curl_setopt ($curl, CURLOPT_CUSTOMREQUEST, "DELETE");
                curl_setopt($curl, CURLOPT_POSTFIELDS,$params);
                break;
        }

//传递一个连接中需要的用户名和密码,格式为:"[username]:[password]"。
        if (!empty($auth) && isset($auth['username']) && isset($auth['password'])) {
            curl_setopt($curl, CURLOPT_USERPWD, "{$auth['username']}:{$auth['password']}");
        }

$data = curl_exec($curl);//执行预定义的CURL
        $status = curl_getinfo($curl, CURLINFO_HTTP_CODE);//获取http返回值,最后一个收到的HTTP代码
        curl_close($curl);//关闭cURL会话
        $res = json_decode($data,true);

return $res;
}

php thinkphp curl 模拟post,put,delete,get 请求相关推荐

  1. 如何模拟POST/PUT/DELETE等请求进行在线HTTP接口测试?

    跨域模拟Post请求,ApiPOST是当前最适合的工具. ApiPOST 是一个可直接生成文档的API调试.管理工具. 它可以突破常规的浏览器跨域瓶颈进行请求(Request)发送,从而模拟用户请求A ...

  2. php curl跨域cookie_PHP curl模拟文件上传(接口请求实现跨域文件中转)

    3e2f08c0c11a8416dd107bbfc9159718.jpg 客户端代码 请求参数 参数类型 参数说明 $url string post提交的服务器url路径 $data 数组 表单数据 ...

  3. php中curl模拟post提交多维数组

    今天需要用curl模拟post提交参数,请求同事提供的一个接口:但是传递的参数中,有一个参数的值为数组,用普通的curl post代码提交,会报错误 PHP Notice:  Array to str ...

  4. php post 二维数组,php curl模拟post请求和提交多维数组的示例代码

    这篇文章主要介绍了php curl模拟post请求和提交多维数组的示例代码,需要的朋友可以参考下 下面一段代码给大家介绍php curl模拟post请求的示例代码,具体代码如下: 'tanteng' ...

  5. cURL(wget)—— 测试 RESTful 接口及模拟 GET/POST/PUT/DELETE/OPTIONS 请求

    cURL 是一个简单的 http 命令行工具.与最优秀的 Unix 工具一样,在设计之时,cURL 是个小型程序,功能十分专一,而且是故意为之,仅用于访问 http 服务器.(在 Linux 中,可以 ...

  6. curl 模拟 GET\POST 请求,以及 curl post 上传文件

    curl 模拟 GET\POST 请求,以及 curl post 上传文件 一般情况下,我们调试数据接口,都会使用一个 postman 的工具,但是这个工具还是有点大了.事实上,我们在调试一些小功能的 ...

  7. php读取cookie文件,PHP读取CURL模拟登录时生成Cookie文件的方法,_PHP教程

    PHP读取CURL模拟登录时生成Cookie文件的方法, 本文实例讲述了PHP读取CURL模拟登录时生成Cookie文件的方法.分享给大家供大家参考.具体实现方法如下: 在使用PHP中的CURL模拟登 ...

  8. 使用PHP CURL 模拟HTTP实现在线请求工具-toolfk程序员工具网

    本文要推荐的[ToolFk]是一款程序员经常使用的线上免费测试工具箱,ToolFk 特色是专注于程序员日常的开发工具,不用安装任何软件,只要把内容贴上按一个执行按钮,就能获取到想要的内容结果.Tool ...

  9. curl php 模拟来源_php 使用curl模拟ip和来源进行访问的实现方法

    对于限制了ip和来源的网站,使用正常的访问方式是无法访问的.本文将介绍一种方法,使用php的curl类实现模拟ip和来源,访问那些限制了ip和来源的网站. 1.设置页面限制ip和来源访问 server ...

最新文章

  1. matlab强制数据类型转换
  2. ubuntu 安装sun-java5-jdk
  3. Socket 学习(三).5 UDP 的弱点
  4. PYTHON莫名其妙的崩溃
  5. C++11中智能指针的原理、使用、实现
  6. qcap 教程_高通平台抓取ramdump及使用qcap解析,ramdumpqcap
  7. 上位机编程软件哪个好_UG、Mastercam、Cimatron、Powermill等 数控编程学哪个软件好呢...
  8. 在微型计算机系统中 视频适配器为,一级计算机基础知识整理解说.xls
  9. linux 相机,linux下使用大恒相机实时运行ORB-SLAM
  10. 腾讯课堂电脑版麦克风怎么打开
  11. 表情包,头像,壁纸小程序达人入驻教程
  12. APP Designer 制作简易英汉词典的回调函数书写
  13. Git学习总结(3)
  14. linux查看磁盘空间大小
  15. 新时代区块链研究院 | 区块链人才需求激增200%,薪资已赶超互联网!
  16. 微信公众号流量入口-搜索排名
  17. 【工具】百度网盘视频类资源下载新思路,轻松优雅解决下载限速方法
  18. 【科技素养题】少儿编程 蓝桥杯青少组科技素养题真题及解析第17套
  19. ES6-ES11新特性速查手册
  20. 教你怎样煮鸡蛋 煮软蛋 煮溏心蛋

热门文章

  1. 集成运算放大器线性应用的基本电路以及输出电压与输出电压的关系
  2. notepad++ \r\n替换成回车换行
  3. extern ‘‘C‘‘
  4. android scrollview 滚动高度,如何更改Android ScrollView的大小
  5. golang实现生产者消费者模型
  6. 内核系统调用openat Hook(Android10)
  7. python学习 stackflow社区 python的机器学习库
  8. Linux下Qt 5.15.2源码下载及编译
  9. Python基于TensorFlow深度学习卷积神经网络自动识别网站验证码设计
  10. POJ 3258 River Hopscotch 经典二分