PHP和OneNet平台交互
来源:互联网 发布:java打印功能代码 编辑:程序博客网 时间:2024/05/17 23:11
此前,关于Microduino如何同OneNet平台交互我已经写了一个系列,想了解的可以点击此链接:http://blog.csdn.net/wobeatit/article/details/77985333进一步了解。关于使用PHP和OneNet平台的交互,实际上比硬件方面的交互要简单些,所以接下来的讲解会比较粗糙。
上传数据
首先附上上传数据的php源码,此段代码我主要使用curl函数来构造HTTP报文,与OneNET平台交互。
在这里应注意的是,curl函数需要在php.ini的配置文件中打开:
<?php//php post数据到onenet平台 $url = 'http://api.heclouds.com/devices/*****/datapoints?type=3';//*****处填写自己的设备ID号$header[]="api-key:************"; //填写自己的api-key号$content = "{\"a\":20}";//向OneNET发送的数据JSON格式function post($url, $header, $content){ $ch= curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);//TRUE-->将curl_exec()获取的信息以字符串返回,而不是直接输出。 curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); //启用时会将头文件的信息作为数据流输出 curl_setopt($ch, CURLOPT_POST, true);//启用时会发送一个常规的POST请求,类型为:application/x-www-form-urlencoded,就像表单提交的一样 curl_setopt($ch, CURLOPT_POSTFIELDS, $content); if(curl_exec($ch) === false) //curl_error()返回当前会话最后一次错误的字符串 { die("Curlerror: ".curl_error($ch)); } $response= curl_exec($ch);//获取返回的文件流 curl_close($ch); return $response;}$output = post($url,$header,$content);$output_array = json_decode($output,true);print_r($output_array); ?>
再附上在之前的博客中提到的与OneNET平台交互的HTTP报文格式:
POST/devices/*****/datapoints?type=3HTTP/1.1
api-key:****************
Host:api.heclouds.com
Connection:close
Content-Length:23
{“a”:20}
对比可发现,使用curl函数表示HTTP报文时,实际上就是拼接出了HTTP报文形式。
获取数据
从OneNet获取数据,实际上要比发送数据代码编写更为简单,先附上源码:
<?php$header[]="api-key:*********";//此处写成自己的API-KEY值$url="http://api.heclouds.com/devices/******/datastreams/**";/*获取数据流为**的数据值,注意此处设备ID号以及申请获取的数据流ID号都应根据自己的OneNet平台设备ID号,希望获取的数据流ID号进行更改*/ //用于获取从OneNet平台返还的数据function get($url, $header){ //1.初始化,创建一个新cURL资源 $ch=curl_init(); //2.设置URL和相应的选项 curl_setopt($ch,CURLOPT_URL,$url);//需要获取的URL地址,也可以在curl_init()函数中设置 curl_setopt($ch,CURLOPT_HTTPHEADER,$header);//启用时会将头文件的信息作为数据流输出 curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//将curl_exec()获取的信息以字符串返回,而不是直接输出。 curl_setopt($ch,CURLOPT_HEADER,0);//启用时会将头文件的信息作为数据流输出。 if(curl_exec($ch)=== false) //curl_error()返回当前会话最后一次错误的字符串 { die("Curlerror: ".curl_error($ch)); } $response =curl_exec($ch);//获取返回的文件流 curl_close($ch); return $response;}$output=get($url,$header);$output_array=json_decode($output,true);print_r($output_array);/*print_r($output_array["data"]["update_at"]);print_r($output_array["data"]["current_value"]);*/?>
贴上之前博客中提到的向OneNet平台发送数据的完整HTTP报文格式:
GET/devices/***/ datastreams/aHTTP/1.1
api-key:*************
Host:api.heclouds.com
Connection:close
可以发现php实现获取数据其实是同发送数据一样,利用curl函数实现了获取数据的HTTP请求报文的拼接。
阅读全文
1 0
- PHP和OneNet平台交互
- Arduino/Microduino与OneNet平台及web服务器端的交互
- Python读写OneNET平台数据
- OneNet学习笔记(二)——OneNet平台初识
- OneNet
- SIM800A上传数据到Onenet平台命令
- OneNET微信平台授课笔记
- W5500上传温湿度到oneNET平台
- Air800(GPRS+GPS模块)连接OneNet平台
- ESPDUINO上传数据到oneNet云平台
- unity3d 和 php交互
- STM32+ESP8266 上传数据到移动onenet平台
- OneNet 平台HTTP上报与获取设备数据
- ONENET平台简介及简单的接入方法
- OneNET与第三方平台对接(最简单方式)
- OneNET平台控制W5500开发板LED灯
- OneNET与第三方平台对接(最简单方式)
- PHP和flex交互乱码
- STL数据结构小结
- HDU1040
- JDBC的操作步骤
- maven打包时 junit.framework不存在
- Python迭代工具
- PHP和OneNet平台交互
- C++复习第一天 C++基本概念
- HDU1048
- vs调试窗口程序,鼠标不好使解决
- Bootstrap 按钮状态
- 使用lua脚本做高并发限流
- GreenDAO使用
- 随记
- HDU1056