从Arduino以太网客户端Get中删除标头信息
Removing Header information from an Arduino Ethernet Client Get
我想知道这是否有我遗漏的技巧。
在arduino上,你这样从网络服务中获取:
if (client.connect("google.com", 80)) {
client.println("GET /service/v2/time HTTP/1.1");
client.println("Host:nimbits-02.appspot.com");
client.println();
delay(1000);
while(client.connected() && !client.available()) delay(1);
while (client.available()) {
c = client.read();
Serial.print(c);
}
client.stop();
client.flush();
}
工作非常好(调用nimbits时间服务)
这个调用的内容主体是我需要的,打印结果如上所述给我:
> HTTP/1.1 200 OK Date: Sat, 02 Feb 2013 17:24:38 GMT Content-Type:
> text/html Server: Google Frontend Content-Length: 13
>
> 1359825878036
一切都很好,但我必须在arduino上进行一些昂贵的字符串处理才能获得消息正文。我只想要13598225878036。有没有办法告诉以太网客户端不要读取标头?那会很方便。
到目前为止,我最好的解决方案是假设消息正文总是在最后一个新行字符之后,这似乎很容易出错:
if (client.connect("google.com", 80)) {
client.println("GET /service/v2/time HTTP/1.1");
client.println("Host:nimbits-02.appspot.com");
client.println();
delay(1000);
while(client.connected() && !client.available()) delay(1);
while (client.available()) {
c = client.read();
response= response + c;
}
int contentBodyIndex = response.lastIndexOf('n');
if (contentBodyIndex > 0) {
Serial.print(response.substring(contentBodyIndex));
}
client.stop();
client.flush();
}
谢谢,Ben-nimbits.com
它们是一个键。收割台以双CRLF:结束
Response = Status-Line
*(( general-header
| response-header
| entity-header ) CRLF)
CRLF
[ message-body ]
请参阅W3文档
相关文章:
- 将数组的地址分配给变量并删除
- 正在查找文档以获得PS4平台的C++中的设备信息
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- C/C++编译器通常会删除重复的库吗
- 从链接列表c++中删除一个项目
- C++如何通过用户输入删除列表元素
- 为什么在C++中使用私有复制构造函数与删除复制构造函数
- 提升信息解析器在读取/写入 INFO 格式文件时删除所有注释
- 由于删除 [] 知道数组大小,为什么此信息不可用
- C++删除或覆盖文件中的现有信息
- SIGSEGV 错误详细信息和删除步骤
- C++Pig拉丁代码,只删除文件信息
- 替换C++中的删除,信息缺失
- 是否可以根据另一个向量的信息从一个向量中删除某些元素
- 使用反向函数并从 txt 文件中删除一定数量信息的空格
- 使用条带是否删除二进制文件上的RTTI信息
- 如何从gSoap消息中删除xsi:type信息
- 关于隐式删除虚析构函数的错误信息是什么?
- 从Arduino以太网客户端Get中删除标头信息
- C++ 重新启动我的刽子手游戏时,我的分数以及我不想要的玩家信息被删除