前言

Curl:  https://www.php.net/manual/en/book.curl.php

curl_setopt: https://www.php.net/manual/en/function.curl-setopt.php

代码

注释应该很详细了吧,不懂的可以评论或者看上面手册。

设置桥接抓包需要配合抓包工具使用。

/**
* 多种请求方法封装
*
* @param string $url 请求地址
* @param string $method 请求方式
* @param array $header 请求头
* @param array $data 请求体
*
* @return mixd
*/
function Curl_request($url, $method = 'POST', $header = ["Content-type:application/json;charset=utf-8", "Accept:application/json"], $data = [])
{ $method = strtoupper($method);
//初始化
$ch = curl_init();
//设置桥接(抓包)
//curl_setopt($ch, CURLOPT_PROXY, '127.0.0.1:8888');
//设置请求地址
curl_setopt($ch, CURLOPT_URL, $url);
// 检查ssl证书
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
// 从检查本地证书检查是否ssl加密
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, $url);
//设置请求方法
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);
//设置请求头
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
//设置请求数据
if (!empty($data)) {
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
}
//设置curl_exec()的返回值以字符串返回
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$res = curl_exec($ch);
curl_close($ch);
return $res;
}

PHP——封装Curl请求方法支持POST | DELETE | GET | PUT 等的更多相关文章

  1. Curl请求方法封装

    /** * GET请求 * @param $url * @return bool|mixed */ function http_get($url) { $oCurl = curl_init (); i ...

  2. axios请求方法封装.

    axios的使用上一般封装好对应的方法,ES6导出,直接调用,消息通知使用了ElementUI的Message组件. 这是一个封装了axios的Rest风格的工具类,包扩常用的POST,GET,PUT ...

  3. 微信小程序开发——使用promise封装异步请求

    前言: 有在学vue的网友问如何封装网络请求,这里以正在写的小程序为例,做一个小程序的请求封装. 关于小程序发起 HTTPS 网络请求的Api,详情可以参考官方文档:wx.request(Object ...

  4. PHP 之CURL请求封装GET、POST、PUT、DELETE

    /** * @Description: curl请求 * @Author: Yang * @param $url * @param null $data * @param string $method ...

  5. curl请求的get.post.put.delete对接其他系统接口方法

    class HttpCurl{ //控客云平台的appid private $appId = xxxxxx; //控客云平台的appkey private $appKey = 'xxxxxxxxxxx ...

  6. axios浏览器异步请求方法封装 XMLHttpRequest

    axios学习笔记defaults(浏览器端异步请求处理方式) 浏览器异步请求方法封装,主要使用XMLHttpRequest lib/adapters/xhr.js //入口 var utils = ...

  7. IIS在默认情况并不支持对PUT和DELETE请求的支持

    IIS在默认情况并不支持对PUT和DELETE请求的支持: IIS拒绝PUT和DELETE请求是由默认注册的一个名为:“WebDAVModule”的自定义HttpModule导致的.WebDAV的全称 ...

  8. 第六十二篇、AFN3.0封装网络请求框架,支持缓存

    1.网络请求 第一种实现方式: 功能:GET POST 请求 缓存逻辑: 1.是否要刷新本地缓存,不需要就直接发起无缓存的网络请求,否则直接读取本地数据 2.需要刷新本地缓存,先读取本地数据,有就返回 ...

  9. 浅谈http协议六种请求方法,get、head、put、delete、post、options区别

    标准Http协议支持六种请求方法,即: 1.GET 2.POST 3.PUT 4.Delete 5.HEAD 6.Options 但其实我们大部分情况下只用到了GET和POST.如果想设计一个符合RE ...

随机推荐

  1. PHP imagick API中文简介

    PHP imagick API中文简介imagick 类imagick ::adaptiveblurimage 向图像中添加 adaptive 模糊滤镜imagick ::adaptiveresize ...

  2. pipeline的添加顺序和执行顺序

    原文链接:https://www.cnblogs.com/ruber/p/10186571.html 本文只想讨论一下pipeline的执行顺序问题,因为这个搞不明白就不知道先添加编码还是解码,是不是 ...

  3. 题解 P3957 【跳房子】

    对于这题有一个不用单调队列并且不是玄学设置区间最大值的做法 这题校内模拟考的时候打二分+枚举,结果写炸了,跑过来看题解发现为什么他们的区间最大值都是 $ 1005 $ ???特别懵,其实我的代码在dp ...

  4. Python 运算符 各类运算符总结

    运算符详解2.1.算术运算符2.2.比较(关系)运算符2.3.赋值运算符2.4.逻辑运算符2.5.位运算符2.6.成员运算符2.7.身份运算符三.重要运算符说明3.1.join和符号”+“区别3.2. ...

  5. quartz2.3.0(十三)数据库持久化定时器job任务和trigger触发器,在多个调度器实例情况下,由其它调度器实例恢复执行调度器宕机的job任务

    一.初始化数据库11张quartz表:qrtz_*   先从官网下载好quartz2.3.0包:http://www.quartz-scheduler.org/downloads/ 解压后进入目录:q ...

  6. consul安装配置,生产环境部署高可用环境

    1.建立三个consul节点(一个server+两个client) 具体的过程见http://www.cnblogs.com/java-zhao/p/5375132.html 1)在终端下启动vagr ...

  7. 使用PrintDocument定制打印格式

    虽然说使在IE上直接调用打印插件打印已经不常用,但是有时候还是会用到,这里就记录一下. 首先我们列出来我们的打印类 public class PrintService { //打印机名称 privat ...

  8. ADO.NET 六(DataRow DataColumn)

    已经介绍了使用 SqlCommand 对象中的 ExecuteNonQuery 方法执行非查询 SQL 语句来实现对数据表的更新操作,使用 DataSet 对象也能实现相同的功能, 并且能节省数据访问 ...

  9. Python接口自动化基础---get请求

    1.没有参数的get请求 import requests r=requests.get('http://docs.python-requests.org/zh_CN/latest/user/quick ...

  10. PreparedStatement和批处理

    1.概述 PreparedStatement 接口继承了 Statement,并与之在两方面有所不同,它表示预编译的 SQL 语句对象. 首先,数据库会对预编译语句提供性能优化.因为预编译语句有可能被 ...