PHP API接口GETPOST请求封装(通用)

GET

/***  通过URL获取页面信息* @param $url  地址* @return mixed  返回页面信息*/
function get_url($url)
{$ch = curl_init();curl_setopt($ch, CURLOPT_URL,$url);  //设置访问的url地址curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);//不输出内容$result =  curl_exec($ch);curl_close ($ch);return $result;
}

POST

/*** 模拟POST提交* @param string $url 地址* @param string $data 提交的数据* @return string 返回结果*/
function post_url($url, $data) 
{$curl = curl_init(); // 启动一个CURL会话curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); // 对认证证书来源的检查curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); // 从证书中检查SSL加密算法是否存在curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)'); // 模拟用户使用的浏览器//curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转//curl_setopt($curl, CURLOPT_AUTOREFERER, 1);    // 自动设置Referercurl_setopt($curl, CURLOPT_POST, 1);             // 发送一个常规的Post请求curl_setopt($curl, CURLOPT_POSTFIELDS, $data);   // Post提交的数据包xcurl_setopt($curl, CURLOPT_TIMEOUT, 30);         // 设置超时限制 防止死循环curl_setopt($curl, CURLOPT_HEADER, 0);           // 显示返回的Header区域内容curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);   // 获取的信息以文件流的形式返回$tmpInfo = curl_exec($curl); // 执行操作if(curl_errno($curl)) {echo 'Errno'.curl_error($curl);//捕抓异常}curl_close($curl); // 关闭CURL会话return $tmpInfo; // 返回数据
}

GET&&POST通用:

/*** CURL请求* @param $url 请求url地址* @param $method 请求方法 get post* @param null $postfields post数据数组* @param array $headers 请求header信息* @param bool|false $debug  调试开启 默认false* @return mixed*/
function httpRequest($url, $method, $postfields = null, $headers = array(), $debug = false) {$method = strtoupper($method);$ci = curl_init();/* Curl settings */curl_setopt($ci, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);curl_setopt($ci, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0");curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, 60); /* 在发起连接前等待的时间,如果设置为0,则无限等待 */curl_setopt($ci, CURLOPT_TIMEOUT, 7); /* 设置cURL允许执行的最长秒数 */curl_setopt($ci, CURLOPT_RETURNTRANSFER, true);switch ($method) {case "POST":curl_setopt($ci, CURLOPT_POST, true);if (!empty($postfields)) {$tmpdatastr = is_array($postfields) ? http_build_query($postfields) : $postfields;curl_setopt($ci, CURLOPT_POSTFIELDS, $tmpdatastr);}break;default:curl_setopt($ci, CURLOPT_CUSTOMREQUEST, $method); /* //设置请求方式 */break;}$ssl = preg_match('/^https:\/\//i',$url) ? TRUE : FALSE;curl_setopt($ci, CURLOPT_URL, $url);if($ssl){curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, FALSE); // https请求 不验证证书和hostscurl_setopt($ci, CURLOPT_SSL_VERIFYHOST, FALSE); // 不从证书中检查SSL加密算法是否存在}//curl_setopt($ci, CURLOPT_HEADER, true); /*启用时会将头文件的信息作为数据流输出*/curl_setopt($ci, CURLOPT_FOLLOWLOCATION, 1);curl_setopt($ci, CURLOPT_MAXREDIRS, 2);/*指定最多的HTTP重定向的数量,这个选项是和CURLOPT_FOLLOWLOCATION一起使用的*/curl_setopt($ci, CURLOPT_HTTPHEADER, $headers);curl_setopt($ci, CURLINFO_HEADER_OUT, true);/*curl_setopt($ci, CURLOPT_COOKIE, $Cookiestr); * *COOKIE带过去** */$response = curl_exec($ci);$requestinfo = curl_getinfo($ci);$http_code = curl_getinfo($ci, CURLINFO_HTTP_CODE);if ($debug) {echo "=====post data======\r\n";var_dump($postfields);echo "=====info===== \r\n";print_r($requestinfo);echo "=====response=====\r\n";print_r($response);}curl_close($ci);return $response;//return array($http_code, $response,$requestinfo);
}

实例

    $res =httpRequest($url,'post',$data);$json_array = json_decode($res,true);$data=$json_array['data']['admin_user_list'];echo $data

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/413447.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[css] 如何重写行内样式?方法有哪些(至少两种)?

[css] 如何重写行内样式?方法有哪些(至少两种)? 1, !important 最高级 2, var divStyle document.querySelector(#div).style; 修改属性个人简介 我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易, …

css权重核心概念

1. 权重概念: 权重,是一个相对的概念,是针对某一指标而言。某一指标的权重是指该指标在整体评价中的相对重要程度。 权重系数,是表示某一指标项在指标项系统中的重要程度,它表示在其它指标项不变的情况下,这…

[css] 用css3画出一个立体魔方

[css] 用css3画出一个立体魔方 <!DOCTYPE html> <html> <head><meta charset"utf-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><title>立方体</title><style>.box{width: 300px;he…

Qt的简单介绍,发展和由来

一.Qt的介绍 1. Qt是图形用户界面程序框架&#xff0c;也可以称作Qt库&#xff0c;能做界面的还有MFC(只能在windows下使用)&#xff0c;GTK 2. Qt的由来和发展 1. Qt的历史&#xff1a; Qt是1991年奇趣科技公司&#xff08;2008 年 6 月被诺基亚收购&#xff09;开发的一个跨平…

[css] 举例说明shape-outside的属性的用途有哪些?

[css] 举例说明shape-outside的属性的用途有哪些&#xff1f; shape-outside定义了一个可以是非矩形的形状&#xff0c;相邻的内联内容应围绕该形状进行包装。比如使用 shape-outside: circle(); 属性可以实现文字圆形环绕图片的效果。个人简介 我是歌谣&#xff0c;欢迎和大…

2019年7月前CSDN最新排名

截止到2019年6月27日&#xff0c;CSDN排前的大神&#xff1a; 排名第16&#xff1a;https://blog.csdn.net/hejishan 排名第13&#xff1a;https://blog.csdn.net/21aspnet 排名第11&#xff1a;https://blog.csdn.net/notbaron 排名第10&#xff1a;https://blog.csdn.net/…

SpringCloud(二) 服务注册到Eureka

本篇将完成一个可以注册到注册中心的最简单的服务。无论是服务提供者还是服务消费者&#xff0c;都可以在此项目基础上完善出来。 基础服务 最基础的服务&#xff0c;只完成注册到注册中心。 1、pom.xml 文件 1 <?xml version"1.0" encoding"UTF-8"?&…

CSS之层模型

一&#xff1a;理解 如果懂Photoshop的同事&#xff0c;那么层模型就像它的图层那样&#xff0c;上下图层互不影响&#xff0c;可以重叠组合出你想要的视觉。 或者可以理解为楼层&#xff0c;同一栋大厦的不同楼层&#xff0c;再二维角度说&#xff0c;大家的经纬度&#xff…

[css] ui设计中px、pt、ppi、dpi、dp、sp之间的关系?

[css] ui设计中px、pt、ppi、dpi、dp、sp之间的关系&#xff1f; QQ20150717160352 做了几个移动端的项目之后&#xff0c;深感移动端尺寸换算的必要性&#xff0c;在此做个总结。 先介绍下各自的定义&#xff1a; px&#xff1a;pixel&#xff0c;像素&#xff0c;电子屏幕…

SQL多列查询最大值

直接从某一列查询出最大值或最小值很容易&#xff0c;通过group by字句对合适的列进行聚合操作&#xff0c;再使用max()/min()聚合函数就可以求出。 样本数据如下&#xff1a; key_idxyzA123B552C471D338求查询每个key的最大值&#xff0c;展示结果如下&#xff1a; key_idcolA…

CSS之浮动模型

浮动模型又叫流模型&#xff0c;什么是float&#xff08;浮动&#xff09; 最早是为了适应报纸的排版&#xff0c;文字环绕图片的效果&#xff0c;后来经过使用和研究发展出一系列复杂的用法。 CSS 的 Float&#xff08;浮动&#xff09;&#xff0c;会使元素向左或向右移动&…

工作336:uni-ele-el-table修改宽度问题

<el-table-columnfixed"right"header-align"center"label"操作"width"200px">

java 递归调整为队列

如果递归的是深而不广的树时&#xff0c;应该使用队列来优化递归&#xff1b;如果递归是广而不深的树的时候&#xff0c;就应该用递归来优化队列。 https://blog.csdn.net/pseudonym_/article/details/71600084?utm_sourceitdadao&utm_mediumreferral转载于:https://www.c…

工作337:pc-ele-ment联查问题

<grid-radiochange"ListRuery"v-model"query.platform":border"true":options"platform_category"/><!--query.platform--></el-form-item><el-form-item label"平台选择"><!-- <el-checkbo…

html中内联元素和块级元素的区别(整理版)

块级元素和内联元素的主要区别 块级元素 内联元素&#xff08;即行内元素&#xff09; 总是在新行上开始&#xff0c;独占一行默认情况下&#xff0c;宽度自动填满其父元素 相邻的行内元素会排列再同一行里&#xff0c;直到一行排不下&#xff0c;才会换行&#xff0c;宽度随…

工作338:pc重置筛选条件

this.query{}console.log(this)getAction("/account/list",{query:{platform_channel: this.query.platrorm_channel,platform_category:this.query.platform,department_id:this.query.department,}}).then(res>{console.log(res)this.accountListres.data})运行…

Python---通配符的使用

苹果单价 9.00 元&#xff0f;斤&#xff0c;购买了 5.00 斤&#xff0c;需要支付 45.00 元 在 Python 中可以使用 print 函数将信息输出到控制台如果希望输出文字信息的同时&#xff0c;一起输出 数据&#xff0c;就需要使用到 格式化操作符% 被称为 格式化操作符&#xff0c;…

工作339:pc父组件通过props传值给子组件,如何避免子组件改变props的属性值报错问题

</el-form><div><!--子代方法有一个传值传向父级 onselect去接收这个值--><select-account :data1.sync"accountList" :checkedData.sync"checkedData1" seletct"onSelect" /></div><div style"clear: bo…

H5新增的标签和属性

声明 Web 世界中存在许多不同的文档。只有了解文档的类型&#xff0c;浏览器才能正确地显示文档。 HTML 也有多个不同的版本&#xff0c;只有完全明白页面中使用的确切 HTML 版本&#xff0c;浏览器才能完全正确地显示出 HTML 页面。这就是 <!DOCTYPE> 的用处。 <!…

Qt错误汇总

1-工程文件不能包含中文路径。 2-转载于:https://www.cnblogs.com/chdfelix/p/9548686.html