这篇内容是在有道云旧笔记基础上重新整理的 技术实践 笔记。原始记录偏碎片化,这里补充了使用场景、阅读顺序和落地时需要注意的边界,方便以后在项目里快速复用。
适用场景
- 遇到同类工具、框架或工程问题时,作为快速检索和回忆的入口。
- 把旧笔记中的关键步骤整理成可以继续补充的博客材料。
- 适合在真实项目验证后继续追加版本、环境和最终结论。
核心要点
- 正文以代码或命令片段为主,阅读时建议先确认目标问题,再挑选对应片段验证。
- 保留了 1 段可直接参考的代码或命令,主要涉及 cpp,复制前需要按当前项目路径、版本和变量名做调整。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| ESP8266WebServer类库ON方法支持通配符"*"
#ifndef URI_H #define URI_H
#include <Arduino.h> #include <vector>
class Uri {
protected: const String _uri;
public: Uri(const char *uri) : _uri(uri) {} Uri(const String &uri) : _uri(uri) {} Uri(const __FlashStringHelper *uri) : _uri(String(uri)) {} virtual ~Uri() {}
virtual Uri* clone() const { return new Uri(_uri); };
virtual bool canHandle(const String &requestUri, __attribute__((unused)) std::vector<String> &pathArgs) { int starPos = _uri.indexOf('*'); if (starPos != -1) { String prefix = _uri.substring(0, starPos); String suffix = _uri.substring(starPos + 1); return requestUri.startsWith(prefix) && requestUri.endsWith(suffix); } return _uri == requestUri; } };
#endif
|
实践检查清单
- 先确认当前工具链版本和运行环境,再决定是否直接复用示例。
- 把验证过的最终命令、配置或代码补回本文,减少下次重复排查。
复盘小结
这篇笔记更适合作为问题排查或方案落地前的速查材料。后续如果在真实项目中再次遇到同类问题,可以继续把具体版本、报错信息、最终取舍和验证结果补到对应小节里,让它从代码片段逐步沉淀成完整方案。
Author:蓝思同学
Permalink:https://www.lancema.com/posts/2024/study/ESP8266开发.html
Slogan:small is beautiful, small is powerful !