PHP cURL POST JSON数据
2016-04-13 00:00
429 查看
摘要: PHP cURL POST JSON数据发送与接收demo
<?php // client发送数据 $data = array( 0=>array( 'mobile' => '15011111111', 'username' => '张三' ), 1=>array( 'mobile' => '15011111111', 'username' => '李四' ) ); $url = 'http://api.url.com; $resData = doRequest($url, $data, 'POST'); print_r(json_decode($resData, TRUE)); function doRequest($url, $data, $type = 'GET') { if(empty($url) || empty($data) || !is_array($data)) { return FALSE; } $objJson = json_encode($data); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $type); curl_setopt($ch, CURLOPT_POSTFIELDS,$objJson); curl_setopt($ch, CURLOPT_RETURNTRANSFER,true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json; charset=utf-8', 'Content-Length: ' . strlen($objJson)) ); $returnData = curl_exec($ch); curl_close($ch); return $returnData; }
//服务器接收 <?php /** * 我里我在测试的时候使用$_POST,file_put_contents("php://input")都不能接收到传过来的数据 * 最后使用$GLOBALS['HTTP_RAW_POST_DATA']成功接收到使过来的JSON数据 * * $GLOBALS['HTTP_RAW_POST_DATA'] 和$_POST的区别 * $_POST:通过 HTTP POST 方法传递的变量组成的数组。是自动全局变量 * $GLOBALS['HTTP_RAW_POST_DATA'] :总是产生 $HTTP_RAW_POST_DATA 变量包含有原始的 POST * 数据。此变量仅在碰到未识别 MIME 类型的数据时产生。$HTTP_RAW_POST_DATA 对于 * enctype="multipart/form-data" 表单数据不可用 * 也就是说基本上$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST是一样的 * 但是如果post过来的数据不是PHP能够识别的,你可以用 $GLOBALS['HTTP_RAW_POST_DATA']来接收 * * 补充说明:PHP默认识别的数据类型是application/x-www.form-urlencoded标准的数据类型 */ $requestData = $GLOBALS['HTTP_RAW_POST_DATA']; echo $requestData; //输出 /** *[ * { * mobile: "15011111111", * username: "张三" * }, * { * mobile: "15011111111", * username: "李四" * } *]
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- 我是运营,我没有假期
- PHP数据库长连接mysql_pconnect的细节
- XML 与 JSON 优劣对比
- Php Installing An Expansion
- php7 读取php.ini[4]
- VBA将excel数据表生成JSON文件
- DB2数据库的安装
- C#实现把指定数据写入串口
- “传奇”图象数据存储方式
- newtonsoft.json解析天气数据出错解决方法
- 修复mysql数据库
- PHP+Apache在Windows 9x下的安装和配置