arduino - 带有 NULL 字符的 Arduino HttpClient getString 问题。ESP32
问题描述
对我的十六进制 http.Get() 方法的响应应该看起来像 0x00,0x00,0x00,0x00,0x04,0x08,0xff 但是当您尝试使用 response = http.getString() 收集数据时;我得到空字符串可能是因为 getString() 通过看到 0x00 (NULL) 来终止它
那么是否有任何方法可以替换 getString() 或在 get 方法响应中接收 unit8_t 字节
如果我在服务器上编辑对 0x04,0x08,0xff 的响应,ps 代码可以正常工作
解决方案
使用 http.getstream
WiFiClient * stream = http.getStreamPtr();
while(http.connected() && (len > 0 || len == -1))
{
// get available data size
size_t size = stream->available();
if(size) {
// read up to 128 byte
int c = stream->readBytes(response, ((size > sizeof(response)) ?
sizeof(response) : size));
if(len > 0) {
len -= c;
}
}
delay(1);
}
推荐阅读
- github-api - 如何获取我作为管理员或协作者的 GitHub 组织中所有存储库的列表?
- regex - 如何在正则表达式的嵌套项目符号列表中搜索单词组合?
- docker - Dockerfile 构建成功但容器无法运行
- python - 如何从字典中获取子列表的最小长度,除了零?
- flutter - Flutter - 从json解析数据永远不会完成
- javascript - 在对象中反应本机对象
- css - 没有重载匹配此调用。Overload 1 of 2 -- 昨天同一个项目工作
- javascript - 在 React.js 上使用键盘导航时,屏幕阅读器不阅读页面
- python - 从 pandas 数据框创建 postgres 表时,主键约束被删除
- flutter - 如何在 Flutter 中处理不同屏幕尺寸上的定位元素(在堆栈中)?