php通过curl进行json数据传输
来源:互联网 发布:阿里云专有网络 编辑:程序博客网 时间:2024/05/16 08:32
由于php curl 数据传输对多维数据貌似不支持,简单的办法就是讲多维数组转化为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数据
1 0
- php通过curl进行json数据传输
- php之使用curl进行数据传输
- PHP---数据传输cURL
- PHP中的数据传输CURL
- PHP中的数据传输CURL
- php cUrl 通过 http post json数据
- 使用 JSON 进行数据传输
- 使用 JSON 进行数据传输
- 使用 JSON 进行数据传输
- 使用 JSON 进行数据传输
- 使用 JSON 进行数据传输
- 使用 JSON 进行数据传输
- 使用 JSON 进行数据传输
- 使用 JSON 进行数据传输
- 使用JSON进行数据传输
- 使用JSON进行数据传输
- 使用JSON 进行数据传输
- 使用JSON进行数据传输
- poj 1161 The Suspects
- Apache Mina(二)
- 剑指offer - 整数中1出现的次数
- HDU 3697--贪心+暴力
- HDU 5793 A Boring Question 打表找规律
- php通过curl进行json数据传输
- JVM介绍
- 世界你好
- Appium移动自动化测试(一)--安装Appium
- iOS 计算指定路径下文件尺寸及清理
- 设计模式六大原则(2)里氏替换原则(Liskov Substitution Principle)
- HDOJ-----2112最短路
- 【HDU】-2096-小明A+B(水)
- 对链表中重复元素的删除