在OneNET平台的HTTP协议可以说是最简单的一种协议,使用的是HTTP的RESTful风格接口,可以作为新手用来入门OneNET各类协议的协议。在OneNET它是一种短连接协议,只能用于数据上报,不能下发命令,如果你想要实现命令下发可以用EDP协议或者MQTT协议。本文向将用工具调试方法,再用C语言代码讲解,用socket来通信,不贴出socket代码,代码在另外一篇博客OneNET的EDP协议讲解与应用有贴出。本文只POST、GET一个数据流或一个数据点,读者若想实现多个数据流或数据点的POST、GET,可参考本文代码,并参考OneNET HTTP协议开发文档。
一、用TCP&UDP测试工具调试
1、工具下载
可以到TCPUDP测试工具下载,或者直接百度搜索“TCP&UDP测试工具”下载。
2、连接服务器
(1)打开工具,输入服务器IP地址和端口,OneNET HTTP协议 对应的服务器IP为:183.230.40.33,端口为:80。
4、GET数据流
代码如下:
char *g_onenet_http_pro_api_key = "SlxhH3MCLvuuvXJ0N=a14Yo6EAQ=";
char *g_onenet_http_dev_id = "505619290";
char *get_data_stream_name = "test_stream";
/**************************************************************
函数名称 : onenet_http_get_data_stream
函数功能 : GET OneNET平台数据流
输入参数 : 无
返回值 : HTTP_GET_OK:发送GET成功
HTTP_GET_ERROR:发送GET失败
备注 : 无
**************************************************************/
http_get_t onenet_http_get_data_stream(char *dev_id, char *api_key)
{
char get_buf[ONENET_HTTP_GET_MAX_LEN];
memset(get_buf, 0, sizeof(get_buf));
strcat(get_buf, "GET http://api.heclouds.com/devices/");
strcat(get_buf, dev_id);
strcat(get_buf, "/datapoints?datastream_id=");
strcat(get_buf, get_data_stream_name);
strcat(get_buf, " HTTP/1.1\r\n");
strcat(get_buf, "api-key:");
strcat(get_buf, api_key);
strcat(get_buf, "\r\n");
strcat(get_buf, "Host:api.heclouds.com\r\n");
strcat(get_buf, "\r\n\r\n");
if(socket_send(g_onenet_http_socket_id, get_buf, strlen(get_buf)) > 0)
{
return HTTP_GET_OK;
}
else
{
return HTTP_GET_ERROR;
}
}
/* GET数据流 */
if(HTTP_GET_OK == onenet_http_get_data_stream(g_onenet_http_dev_id, g_onenet_http_pro_api_key))
{
ONENET_HTTP_LOG("get success");
}
else
{
ONENET_HTTP_LOG("get failed");
}
串口打印GET的结果如下:
本文链接:https://www.kinber.cn/post/998.html 转载需授权!
推荐本站淘宝优惠价购买喜欢的宝贝: