php使用curl模拟post请求
废话不多说,直接上代码,做个笔记。
$url="http://localhost/header_server.php";
$body = array("mobile"=>"13899999999", "username"=>"Nick");
$header = array("Content-Type:multipart/x-www-form-urlencoded", "token:test", "client:h5");
$result = curlPost($url, $body, 5, $header, 'json');
var_dump($result);/*** 传入数组进行HTTP POST请求*/
function curlPost($url, $post_data = array(), $timeout = 5, $header = "", $data_type = "") {$header = empty($header) ? '' : $header;//支持json数据数据提交if($data_type == 'json'){$post_string = json_encode($post_data);}elseif($data_type == 'array') {$post_string = $post_data;}elseif(is_array($post_data)){$post_string = http_build_query($post_data, '', '&');}$ch = curl_init(); // 启动一个CURL会话curl_setopt($ch, CURLOPT_URL, $url); // 要访问的地址curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 对认证证书来源的检查 // https请求 不验证证书和hostscurl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器//curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转//curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referercurl_setopt($ch, CURLOPT_POST, true); // 发送一个常规的Post请求curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string); // Post提交的数据包curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); // 设置超时限制防止死循环curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);//curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 获取的信息以文件流的形式返回 curl_setopt($ch, CURLOPT_HTTPHEADER, $header); //模拟的header头$result = curl_exec($ch);// 打印请求的header信息//$a = curl_getinfo($ch);//var_dump($a);curl_close($ch);return $result;
}
几点经验:
1. 不管"Content-Type:multipart/form-data"还是"Content-Type:application/x-www-form-urlencoded"只要采用post方式发送数据,并且在body体中的数据是数组格式,那么在接收端就可以使用$_POST获取到。
2. 在接收端使用file_get_contents("php://input")接收时,只能获取到字符串类型的body体数据。
3. 请求时,在header中添加的参数xxx,在接收端可以使用$_SERVER["HTTP_XXX"]进行获取。
php使用curl模拟post请求相关推荐
- php post 二维数组,php curl模拟post请求和提交多维数组的示例代码
这篇文章主要介绍了php curl模拟post请求和提交多维数组的示例代码,需要的朋友可以参考下 下面一段代码给大家介绍php curl模拟post请求的示例代码,具体代码如下: 'tanteng' ...
- php curl模拟post请求
说明:下面代码支持http和https,使用于各种接口请求.里面设置的参数,根据自己的需求设定. /*** curl模拟post请求* @params string $url [请求地址]* @par ...
- curl模拟post请求
另外可尝试 postman工具 或者用request 直接请求 CURL 发送POST请求curl -header "Content-Type: application/json" ...
- php curl 超时 毫秒,php使用curl模拟异步请求,毫秒级超时设置
使用curl请求设置超时模拟php异步请求: /** * 1.curl 异步请求不需要等待返回值(秒级) * * @param [type] $url [description] * @return ...
- php curl模拟https请求
https请求(支持GET和POST) function http_request($url,$data = null){$curl = curl_init();curl_setopt($curl, ...
- curl post json_curl 模拟 GETPOST 请求,以及 curl post 上传文件
curl 模拟 GETPOST 请求,以及 curl post 上传文件 一般情况下,我们调试数据接口,都会使用一个 postman 的工具,但是这个工具还是有点大了.事实上,我们在调试一些小功能的时 ...
- curl模拟发送post请求参数通过json格式传输时需要对引号进行转义
如题所示,curl模拟post请求,简单来说就是需要-XPOST即可,若是带有参数,一般来说-d "user=test&password=test"就可以搞定了.偏偏我们的 ...
- 使用PHP CURL 模拟HTTP实现在线请求工具-toolfk程序员工具网
本文要推荐的[ToolFk]是一款程序员经常使用的线上免费测试工具箱,ToolFk 特色是专注于程序员日常的开发工具,不用安装任何软件,只要把内容贴上按一个执行按钮,就能获取到想要的内容结果.Tool ...
- curl php 模拟来源_PHP-Curl模拟HTTPS请求
使用PHP-Curl方式模拟HTTPS请求,测试接口传参和返回值状态 上代码!! <?php /*** 模拟post进行url请求* @param string $url* @param arr ...
最新文章
- 缓存HA的开源解决方案
- android-support-v4.jar 免积分下载
- python判断题题库大数据技术_智慧树知到_大数据分析的python基础_选择题答案
- python基础常用语句-Python基本语句
- 【项目实战】基于python的 p2p 贷后指标全自动日报制作
- .Net学习笔记----2015-07-10(GDI绘图)
- 392. Is Subsequence
- leecode11 盛水最多的容器
- 在学Python前学Linux,Python原来这么好学-1.2节: 在Linux中安装python
- Retrofit:类型安全的REST客户端for 安卓Java
- Android将ButtonBar放在屏幕底部
- 读取PDF的文字--zt
- 苹果和linux_苹果发布ResearchKit,Linux采用冲突代码,等等
- 如何在类的外部修改类中的私有数据成员
- 有关日期的函数操作用法总结,to_date(),trunc(),add_months();
- 升职加薪,必不可少!Python刷题打怪,你要的LeetCode答案都在这里了!
- 详解YUV420数据格式
- MATLAB读二进制数据文件
- pocket英语语法入门
- Web大学生网页作业成品——篮球网站设计与实现(HTML+CSS)