2017-06-17 22 views
0

私がやって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"という行ですが、これは最初の行だけを出力します。

誰かが私が間違ってやっていること、またはそれを行う方法を見ていますか?

+2

Cではありません。つまり、タグを削除するか、正しいものと交換してください.... –

+0

ます。https:// EN。 wikipedia.org/wiki/Chunked_transfer_encoding –

答えて

1

ホイールを改造しないでください。 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(); 
関連する問題