废话不多说,直接上代码,做个笔记。

$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请求相关推荐

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

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

  2. php curl模拟post请求

    说明:下面代码支持http和https,使用于各种接口请求.里面设置的参数,根据自己的需求设定. /*** curl模拟post请求* @params string $url [请求地址]* @par ...

  3. curl模拟post请求

    另外可尝试 postman工具 或者用request 直接请求 CURL 发送POST请求curl -header "Content-Type: application/json" ...

  4. php curl 超时 毫秒,php使用curl模拟异步请求,毫秒级超时设置

    使用curl请求设置超时模拟php异步请求: /** * 1.curl 异步请求不需要等待返回值(秒级) * * @param  [type] $url [description] * @return ...

  5. php curl模拟https请求

    https请求(支持GET和POST) function http_request($url,$data = null){$curl = curl_init();curl_setopt($curl, ...

  6. curl post json_curl 模拟 GETPOST 请求,以及 curl post 上传文件

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

  7. curl模拟发送post请求参数通过json格式传输时需要对引号进行转义

    如题所示,curl模拟post请求,简单来说就是需要-XPOST即可,若是带有参数,一般来说-d "user=test&password=test"就可以搞定了.偏偏我们的 ...

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

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

  9. curl php 模拟来源_PHP-Curl模拟HTTPS请求

    使用PHP-Curl方式模拟HTTPS请求,测试接口传参和返回值状态 上代码!! <?php /*** 模拟post进行url请求* @param string $url* @param arr ...

最新文章

  1. 缓存HA的开源解决方案
  2. android-support-v4.jar 免积分下载
  3. python判断题题库大数据技术_智慧树知到_大数据分析的python基础_选择题答案
  4. python基础常用语句-Python基本语句
  5. 【项目实战】基于python的 p2p 贷后指标全自动日报制作
  6. .Net学习笔记----2015-07-10(GDI绘图)
  7. 392. Is Subsequence
  8. leecode11 盛水最多的容器
  9. 在学Python前学Linux,Python原来这么好学-1.2节: 在Linux中安装python
  10. Retrofit:类型安全的REST客户端for 安卓Java
  11. Android将ButtonBar放在屏幕底部
  12. 读取PDF的文字--zt
  13. 苹果和linux_苹果发布ResearchKit,Linux采用冲突代码,等等
  14. 如何在类的外部修改类中的私有数据成员
  15. 有关日期的函数操作用法总结,to_date(),trunc(),add_months();
  16. 升职加薪,必不可少!Python刷题打怪,你要的LeetCode答案都在这里了!
  17. 详解YUV420数据格式
  18. MATLAB读二进制数据文件
  19. pocket英语语法入门
  20. Web大学生网页作业成品——篮球网站设计与实现(HTML+CSS)

热门文章

  1. OLTP、OLAP、即席查询(ad hoc query)区别与联系
  2. win7英文版很多软件中文显示乱码解决方案
  3. 设计用于汽车和车身SPC58NH92C3RMI0X\SPC560B50L1B4E0X微控制器
  4. shp文件的解析方法
  5. Python:计算天干地支
  6. 可分离卷积及深度可分离卷积详解
  7. H3C smart-link实验 C套拆解
  8. 微信小程序如何添加新的icon图标
  9. Matlab处理气象数据(四)观测数据的预处理和计算
  10. Myeclipse10安装以及破解方法