Как построить HTTP-ответ с ESP8266 и Arduino
Я хочу переключать некоторые светодиоды на моем устройстве Android. Эти светодиоды подключены к цифровым контактам моего Arduino, который также подключен к ESP8266. Теперь мой ESP8266 определен как AccessPoint, и мой планшет может отправлять HTTP-запросы (например, http://192.168.4.1/?pin=11). Я нашел код здесь http://allaboutee.com/2015/01/20/esp8266-android-application-for-arduino-pin-control/
Это работает нормально, но мой вопрос, какие поля заголовка HTTP должны использоваться? В этом коде он использовал некоторые (например, Content-Length), но есть гораздо больше возможных (Date, Server, Content-Language,...).
Эти поля являются необязательными или какие из них необходимо использовать для создания правильного ответа?
Вот кусок кода, который я не понимаю:
void sendHTTPResponse(int connectionId, String content)
{
String httpResponse;
String httpHeader;
httpHeader = "HTTP/1.1 200 OK\r\nContent-Type: text/html; charset=UTF-8\r\n";
httpHeader += "Content-Length: ";
httpHeader += content.length();
httpHeader += "\r\n";
httpHeader +="Connection: close\r\n\r\n";
httpResponse = httpHeader + content + " ";
sendCIPData(connectionId,httpResponse);
}
1 ответ
Во многом это зависит от клиента (то есть потребителя), какие поля являются обязательными, а какие - обязательными.
Единственное, что всегда требуется, это "HTTP/1.1 200 OK". Конечно, вам нужно заменить этот код состояния, если вы не отправляете сообщение OK.