php通过curl进行json数据传输
2016-08-04 21:20
399 查看
由于php curl 数据传输对多维数据貌似不支持,简单的办法就是讲多维数组转化为json操作
关键点1:curl不支持多维数据,要讲数组转化为json格式传输
关键点2:curl传输json需要额外定义数据传输格式
关键点3:通过 $GLOBALS[‘HTTP_RAW_POST_DATA’] 获取post过来的json数据
$data['author'] = $this->getPost('author'); $data['article_category'] = $this->getPost('categroy'); $data['image'] = $this->getPost('thumb'); $data['image_2'] = $this->getPost('image'); $data['status'] = 1; $data['allow_comment'] = 0; $data['need_approval'] = 0; $data['sort_order'] = 0; $data['article_store'] = array('0'); $data['app_category_id'] = 2; $data['article_description']['2'] = array( 'name' => $this->getPost('title'), 'tag' => $this->getPost('tags'), 'title' => $this->getPost('description'), 'meta_keyword' => $this->getPost('tags'), 'meta_description' => $this->getPost('description'), 'content' => $content, ); $url = 'index.php?route=article/api'; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); if (!empty($data)) { //由于curl不支持传多维数组,转化json传输 $data = json_encode($data); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); //这里必须定义数据传输类型为json curl_setopt($curl, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json; charset=utf-8', 'Content-Length: ' . strlen($data) ) ); } curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //获取json格式的返回结果 $output = curl_exec($curl); curl_close($curl); //对结果进行json解析 $output = json_decode($output,true);
// 由于php 的post默认不支持接受json数据格式,我们可以采用$GLOBALS['HTTP_RAW_POST_DATA']来回去post数据 $post = json_decode($GLOBALS['HTTP_RAW_POST_DATA'],true); //如果不是post访问,报错 if ($this->request->server['REQUEST_METHOD'] != 'POST') { $data['info'] = false; $data['error_warning'] = '错误的请求方式'; } elseif (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validateForm_api($post)) { //进行数据库操作,并定义返回值 $data['article_id'] = $this->model_article_articleapi->addArticle($post); $data['info'] = true; }}else{ if (isset($this->error['warning'])) { $data['error_warning'] = $this->error['warning']; } else { $data['error_warning'] = '提交的数据不符合要求'; } $data['info'] = false; } //对返回值进行json编码并输出 echo json_encode($data);
关键点1:curl不支持多维数据,要讲数组转化为json格式传输
关键点2:curl传输json需要额外定义数据传输格式
关键点3:通过 $GLOBALS[‘HTTP_RAW_POST_DATA’] 获取post过来的json数据
相关文章推荐
- php的curl获取https加密协议请求返回json数据进行信息获取
- 在Unity3D里使用JSON格式通过PHP进行数据交换
- js 与 php 通过json数据进行通讯示例
- PHP文件数据传输用jQuery-ajax进行浏览器->服务器->数据文件->服务器->浏览器的数据传输($_POST,$_GET,json_encode(数组数据回应),json数据解析)
- php的curl获取https加密协议请求返回json数据进行信息获取
- php通过curl post和get发送json数据实例 curl命令转为php源码
- C# winform端 通过HttpWebRequest进行post和get请求,数据格式为json,后台java端接收,其中有关传输特殊字符(\t,\r,',\n,n)等处理
- Ajax 如何通过url 传递Json 数据或者数组 给PHP进行处理
- php的curl获取https加密协议请求返回json数据进行信息获取
- php 通过curl post发送json数据实例
- php使用curl远程传输数据并判断进行验证
- Android客户端与服务器端通过SOCKET连接进行读写(将JSON数据转化为字符串后传输)
- php之使用curl进行数据传输
- php小代码----curl模拟登录及登录后并通过多线程进行重复post数据提交
- js 与 php 通过json数据进行通讯
- php下使用curl进行多种数据编码方式的POST请求
- Activity间通过广播形式动态进行数据传输
- php和js如何通过json互相传递数据相关问题探讨
- php curl 发送 json 数据