热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

esp32查询剩余内存_ESP32RTOS获取HTTP页面数据LESSON3

本帖最后由vincen20于2017-4-2822:22编辑ESP32RTOS获取HTTP页面数据以解决获取天气预报数据为列HTTP协议大家并不陌生,已近成为我们浏览

本帖最后由 vincen20 于 2017-4-28 22:22 编辑

ESP32 RTOS 获取HTTP页面数据

以解决获取天气预报数据为列

HTTP协议大家并不陌生,已近成为我们浏览网页不可缺少的协议。

一般大家采用的获取天气预报信息都是通过专门的API来取得天气预报数据,随着发展越来越多的天气预报API开始收费,对于一般的个人电子爱好者来说带来了不少的麻烦。为解决这一问题,特提出通过http方式来获取天气预报数据的方法。

提出整个过程的原理以及流程

寻址适合抓取的网址、分析要获取的http页面数据找出要获取数据的特征,针对特征编写获取字符串处理函数。

一、找网址。天气预报信息的获取数据比较好找,大部分的网址都提供天气预报服务,很容易就能找到包含有天气预报数据的页面。为了节省流量,发现手机页面的比较简单,特别是为以前手机设计的版本。

二、分析页面数据找出特征。页面的数据一般为html格式文档,页面内容如图

需要获取类似

var dataSK= {"nameen":"fushun","cityname":"富顺"city":"101270302","temp":"23","tempf":"73","WD":"东南风","wde":"SE"….. ,

在此需要获取到的数据为23度。根据分析,在整个html页面中,只有唯一出现个的字符串“dataSK”,因此该处就是需要开始获取的数据。因此可以使用C语言字符串处理函数strstr获取到“days7”后部分长度的字符串。在根据数据23度。在字符temp”:”  “,” tempf 中,所以通过2次使用strstr函数就能等到最短的包含温度的字符串信息。

第一次使用strstr函数,查找的字符串为dataSK,结果是dataSK ={"nameen":"fushun","cityname":"富顺"city":"101270302","temp":"23","tempf":"73","WD":"东南风","wde":"SE"….. ,

第二次使用strstr函数,查找的字符串为temp":",结果是temp":"23","tempf":"73","WD":"东南风","wde":"SE"….. ,

第三次使用strstr函数,查找的字符串为","tempf,结果是","tempf":"73","WD":"东南风","wde":"SE"….. ,

通过第二次与第三次的数据,可以计算出我们获取字符串的长度,在由第二次得到的数据可以提出出最终结果‘23’这个温度数据。

可参考下面程序

char*splitx(char *str,char *s,char *e){

char *t1=NULL;

char *t2=NULL;

char *t3=NULL;

uint8_t lensx=0;

t1=strstr(str,s);

if(t1==NULL){

ESP_LOGI("FUNC_splitx","t1valave is NULL");

return ESP_OK;

}

t2=strstr(t1,e);

if(t2==NULL){

ESP_LOGI("FUNC_splitx","t2valave is NULL");

return ESP_OK;

}

lensx=strlen(t1)-strlen(t2)-strlen(s);

chart='\0';

t3=(char *)malloc(sizeof(char)*lensx+1);

memset(t3,t,sizeof(char)*lensx+1);

strncpy(t3,t1+sizeof(char)*strlen(s),lensx);

return t3;

}

写入代码,然后 make  app flash

r2.png (340.79 KB, 下载次数: 35)

2017-4-28 22:07 上传

re1.png (71.22 KB, 下载次数: 35)

2017-4-28 22:07 上传

三、通过HTTP方式获取数据的优势。

应用广,通过HTTP获取数据的方式不仅可以用来获取天气预报数据,还可以获取新闻数据,与网络服务器进行数据交换。

示例代码github,根据esp32的http_request代码而成。



推荐阅读
  • 本文档汇总了Python编程的基础与高级面试题目,涵盖语言特性、数据结构、算法以及Web开发等多个方面,旨在帮助开发者全面掌握Python核心知识。 ... [详细]
  • 本文介绍了如何使用JavaScript的Fetch API与Express服务器进行交互,涵盖了GET、POST、PUT和DELETE请求的实现,并展示了如何处理JSON响应。 ... [详细]
  • 在尝试使用C# Windows Forms客户端通过SignalR连接到ASP.NET服务器时,遇到了内部服务器错误(500)。本文将详细探讨问题的原因及解决方案。 ... [详细]
  • Python + Pytest 接口自动化测试中 Token 关联登录的实现方法
    本文将深入探讨 Python 和 Pytest 在接口自动化测试中如何实现 Token 关联登录,内容详尽、逻辑清晰,旨在帮助读者掌握这一关键技能。 ... [详细]
  • 丽江客栈选择问题
    本文介绍了一道经典的算法题,题目涉及在丽江河边的n家特色客栈中选择住宿方案。两位游客希望住在色调相同的两家客栈,并在晚上选择一家最低消费不超过p元的咖啡店小聚。我们将详细探讨如何计算满足条件的住宿方案总数。 ... [详细]
  • JSOI2010 蔬菜庆典:树结构中的无限大权值问题
    本文探讨了 JSOI2010 的蔬菜庆典问题,主要关注如何处理非根非叶子节点的无限大权值情况。通过分析根节点及其子树的特性,提出了有效的解决方案,并详细解释了算法的实现过程。 ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
  • Nginx 反向代理与负载均衡实验
    本实验旨在通过配置 Nginx 实现反向代理和负载均衡,确保从北京本地代理服务器访问上海的 Web 服务器时,能够依次显示红、黄、绿三种颜色页面以验证负载均衡效果。 ... [详细]
  • 本文深入探讨了SQL数据库中常见的面试问题,包括如何获取自增字段的当前值、防止SQL注入的方法、游标的作用与使用、索引的形式及其优缺点,以及事务和存储过程的概念。通过详细的解答和示例,帮助读者更好地理解和应对这些技术问题。 ... [详细]
  • 本题来自WC2014,题目编号为BZOJ3435、洛谷P3920和UOJ55。该问题描述了一棵不断生长的带权树及其节点上小精灵之间的友谊关系,要求实时计算每次新增节点后树上所有可能的朋友对数。 ... [详细]
  • 主板IO用W83627THG,用VC如何取得CPU温度,系统温度,CPU风扇转速,VBat的电压. ... [详细]
  • 探讨 HDU 1536 题目,即 S-Nim 游戏的博弈策略。通过 SG 函数分析游戏胜负的关键,并介绍如何编程实现解决方案。 ... [详细]
  • 本文详细介绍了Java中实现异步调用的多种方式,包括线程创建、Future接口、CompletableFuture类以及Spring框架的@Async注解。通过代码示例和深入解析,帮助读者理解并掌握这些技术。 ... [详细]
  • 本文详细介绍了C语言中的基本数据类型,包括整型、浮点型、字符型及其各自的子类型,并探讨了这些类型在不同编译环境下的表现。 ... [详细]
  • PC时代的传奇人物
    回顾过去几十年,个人电脑(PC)的发展历程犹如一部英雄史诗。每一位杰出人物都在这一领域留下了不可磨灭的印记,他们的贡献不仅推动了技术的进步,也深刻影响了现代社会的发展。 ... [详细]
author-avatar
小甜甜龌龊的华丽
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有