http报文组装

本文介绍如何通过定义常量并利用`prepare_data`函数计算参数,使用C语言实现一个发送到OneNetRestFulAPI的设备数据包。步骤包括构建HTTP请求头,设置设备ID,API密钥,以及构造包含数据点的JSON消息。
#define SERVER_ADDR     "api.heclouds.com"  //OneNet RestFul API服务器地址
#define SERVER_PORT     80         //OneNet RestFul API服务器端口
#define DEV_ID "***"
#define API_KEY "********"

u8 temp = 0;
u8 prepare_data(void)
{
	temp = temp + 3;
	if(temp>=100)
		temp = 0;
	return temp;
}

void packing_send_message(void)
{
	u8 send_buf[60];
	u8 text[40];
	u8 para = 0;
	
	para= prepare_data();
	
    strcat((char *)send_buf,"POST /devices/");
    strcat((char *)send_buf,DEV_ID);
    strcat((char *)send_buf,"/datapoints?type=5 HTTP/1.1\r\n");	//注意后面必须加上\r\n
	u2_printf("%s",send_buf);
	
	delay_ms(100);
	memset(send_buf, 0, sizeof(send_buf));
	
    strcat((char *)send_buf,"api-key:");
    strcat((char *)send_buf,API_KEY);
    strcat((char *)send_buf,"\r\n");
	u2_printf("%s",send_buf);

	delay_ms(100);
	memset(send_buf, 0, sizeof(send_buf));
	
    strcat((char *)send_buf,"Host:");
    strcat((char *)send_buf,SERVER_ADDR);
    strcat((char *)send_buf,"\r\n");
	u2_printf("%s",send_buf);

	delay_ms(100);
	memset(send_buf, 0, sizeof(send_buf));
	
	sprintf((char *)text, ",;dataStream,%d;data2,%d;data3,%d", para, para+10, para+20);
    sprintf((char *)send_buf,"Content-Length:%d\r\n\r\n", strlen((char *)text));//计算JSON串长度
	u2_printf("%s",send_buf);

	delay_ms(100);
	memset(send_buf, 0, sizeof(send_buf));
	
    strcat((char *)send_buf,(char *)text);
	u2_printf("%s\r\n",send_buf);
	//printf("%s",send_buf);
	delay_ms(100);
	memset(send_buf, 0, sizeof(send_buf));
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值