2016-10-18 7 views
0

Я не отвечаю на запрос GET, отправлю от ESP8266 + Arduino Mega до Node.js. Мой код в узле получает запрос, но я ничего не получаю в коде Arduino.ESP8266 не получают ответ GET от Node.js

Node.js

app.get('/StatusSaidas', function(req,res){ 
    res.charset = 'UTF-8'; 
    console.log('Send to Arduino: ' + statusArdu); 
    res.send(statusArdu); 
}); 

консоли журнала из Node.js

Console.log Node.js

кодекса в Arduino

uint8_t buffer[1024] = {0}; 
    if (wifi.createTCP(HOST_NAME, HOST_PORT)) { 
    Serial.print("Connection with Host OK!\r\n"); 
    } else { 
    Serial.print("Error to connected to Host!\r\n"); 
    } 
    char *ComandoGET = "GET /StatusSaidas HTTP/1.1\r\nHost: SmartHouse\r\nConnection: close\r\n\r\n"; 
    wifi.send((const uint8_t*)ComandoGET, strlen(ComandoGET)); 

    uint32_t len = wifi.recv(buffer, sizeof(buffer), 10000); 
    char *resposta = buffer; 
    for (int i = 0; i < len; i++) 
    { 
    if (strncmp(resposta++, "\r\n\r\n", 4) == 0) break; 
    } 
    resposta += 3; 
    receive = resposta; 
    Serial.print(receive); 
    Serial.print("\n\r"); 

Я не» Я знаю, в чем проблема с моим кодом. я использовать ESP8266 с Arduino Mega

+0

Во-первых, если вы просто сделаете 'res.send', не получив' res.end', чтобы закончить ответ, он может не завершить отправку всего ответа правильно. Во-вторых, похоже, что вы пытаетесь разобрать HTTP-заголовки из ответа, но их нет, потому что вы только отправляете 'statusArdu'. Добавление файлов cookie в ответ может привести только к тому, что в ответе действительно будет '\ r \ n \ r \ n', который ваш код специально ищет, и может быть, поэтому он« работает »с файлами cookie. – leetibbett

ответ

0

Ваша проблема, вероятно, в строке:

char *ComandoGET = "GET /StatusSaidas HTTP/1.1\r\nHost: SmartHouse\r\nConnection: close\r\n\r\n"; 

«SmartHouse», вероятно, не решена вашего веб-сервера. Ваш хост должен быть чем-то вроде Smarhouse.com или тому подобное.

+0

Я нашел проблему. Это куки из моего Node.js. Когда у меня есть файлы cookie в моем проекте, ESP8266 может просмотреть ответ. Как я могу исправить это, используя этот случай? –

+0

Что произойдет, если вы сделаете завиток, чтобы добраться до вашего сервера nodejs? Вы подтвердили, что все в порядке с вашим веб-сервером в первую очередь? –

+0

Вы пытались исправить хост до нужного значения, как я упомянул в своем ответе? –