2016-08-31 22 views
0

私のプロジェクトには助けが必要です。 は、ここに私のコードです:GETリクエストからHTTPヘッダーをスキップ

void ConexaoServer(){ 
    uint8_t buffer[1024] = {0}; 

    if (wifi.createTCP(HOST_NAME, HOST_PORT)) { 
     Serial.print("Conexao com o Host OK!\r\n"); 
    } else { 
     Serial.print("Conexao com o Host com ERRO!\r\n"); 
    } 

    char *ComandoGET = "GET /teste HTTP/1.1\r\nHost: SmartHome\r\nConnection: close\r\n\r\n"; 
    wifi.send((const uint8_t*)ComandoGET, strlen(ComandoGET)); 

    uint32_t len = wifi.recv(buffer, sizeof(buffer), 10000); 
    if (len > 0) { 
     Serial.print("Received:["); 
     for(uint32_t i = 0; i < len; i++) { 
      Serial.print((char)buffer[i]); 
     } 
     Serial.print("]\r\n\r\n"); 
    } 
} 

そして私は

Received:[HTTP/1.1 200 OK 
X-Powered-By: Express 
Content-Type: text/html; charset=utf-8 
Content-Length: 4 
ETag: W/"4-wArb1VtkpsN6In8g50pGNw" 
Date: Wed, 31 Aug 2016 01:26:41 GMT 
Connection: close 

Luiz] 

シリアル

でのNode.jsから受け取るしかし、私はちょうど Received:[Luiz]を受信したいです。どのように私はこれを行うことができますか?

+0

なぜノード(js land)自体からHTTPリクエストを実行しないのですか?そうすれば、HTTPを手動で解析する必要はありません。 – mscdex

+0

@mscdex Node.jsでどのように行うのですか?ここに私のコードはapp.jsである var express = require( 'express'); var app = express(); app.get( '/ teste'、function(req、res){ \t res.send( 'Hello World!'); }); VARサーバ= app.listen(3000、 "localhost" を、関数(){ \t VARホスト= server.address()アドレス; \t VARポート= server.address()ポート; \tコンソール。 log( '例URL http://%s:%s'、ホスト、ポート); }); –

答えて

1

ダブル改行(\r\n\r\n)を見つけて、それ以降の文字を使用する必要があります。

char payload[1024] = ""; 
char *pl = strstr((char*)buffer, "\r\n\r\n"); 
if (pl != NULL) 
{ 
    strcpy(payload, pl+4); 
    Serial.println(payload); 
} 
関連する問題