我如何从HTTP响应中获取正文?
问题描述:
嘿,我正在做的和Arduino的项目,我想从一个HTTP请求得到了身体,这里是代码:我如何从HTTP响应中获取正文?
// This will send the request to the server
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
delay(100);
int liniea_info = 0;
while(client.available()){
String line = client.readStringUntil('\r');
if(liniea_info == 13){Serial.print(line);}
Serial.print(liniea_info);
++liniea_info;
}
这工作不错,不整liniea_info
返回我:
Requesting URL: /output/***.csv?colors=11
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: X-Requested-With
Content-Type: text/plain
Transfer-Encoding: chunked
Date: Sat, 17 Jun 2017 08:09:31 GMT
Connection: close
Set-Cookie: SERVERID=; Expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/
Cache-control: private
34
colors,day,timestamp
11,12,2017-06-17T07:48:10.619Z
0
我以为用int liniea_info
我只会得到我想要的那一行,即线条"11,12,2017-06-17T07:48:10.619Z"
,但是不行,只打印第一行。
任何人都看到我在做什么错误或如何做到这一点?
答
不要重新发明轮子。只需使用HTTPClient库。这个库处理请求和响应。
添加到包括:
#include <ESP8266HTTPClient.h>
而干脆:
HTTPClient http;
http.begin("http://www.sample-videos.com/csv/Sample-Spreadsheet-10-rows.csv");
int statusCode = http.GET();
Serial.println(http.getString());
http.end();
这不是C,请取下标签或正确的.... –
HTTPS替换它:// EN。 wikipedia.org/wiki/Chunked_transfer_encoding –