void ESP8266WebServer::_prepareHeader(String& response, int code, const char* content_type, size_t contentLength) { response = "HTTP/1."+String(_currentVersion)+" "; response += String(code); response += " "; response += _responseCodeToString(code); response += "\r\n"; if (!content_type) content_type = "text/html"; sendHeader("Content-Type", content_type, true); if (_contentLength == CONTENT_LENGTH_NOT_SET) { sendHeader("Content-Length", String(contentLength)); } else if (_contentLength != CONTENT_LENGTH_UNKNOWN) { sendHeader("Content-Length", String(_contentLength)); } else if(_contentLength == CONTENT_LENGTH_UNKNOWN && _currentVersion){ //HTTP/1.1 or above client //let's do chunked _chunked = true; sendHeader("Accept-Ranges","none"); sendHeader("Transfer-Encoding","chunked"); } sendHeader("Connection", "close"); response += _responseHeaders; response += "\r\n"; _responseHeaders = String(); }
void ESP8266WebServer::send(int code, const char* content_type, String content) { String response = "HTTP/1.1 "; response += String(code); response += " "; response += _responseCodeToString(code); response += "\r\n"; if (!content_type) content_type = "text/html"; _appendHeader(response, "Content-Type", content_type); response += "\r\n"; response += content; _currentClient.print(response); }
void ESP8266WebServer::_prepareHeader(String& response, int code, const char* content_type, size_t contentLength) { response = "HTTP/1.1 "; response += String(code); response += " "; response += _responseCodeToString(code); response += "\r\n"; if (!content_type) content_type = "text/html"; sendHeader("Content-Type", content_type, true); if (_contentLength == CONTENT_LENGTH_NOT_SET) { sendHeader("Content-Length", String(contentLength)); } else if (_contentLength != CONTENT_LENGTH_UNKNOWN) { sendHeader("Content-Length", String(_contentLength)); } sendHeader("Connection", "close"); sendHeader("Access-Control-Allow-Origin", "*"); response += _responseHeaders; response += "\r\n"; _responseHeaders = String(); }
String AsyncWebServerResponse::_assembleHead(uint8_t version){ if(version){ addHeader("Accept-Ranges","none"); if(_chunked) addHeader("Transfer-Encoding","chunked"); } String out = "HTTP/1." + String(version) + " " + String(_code) + " " + _responseCodeToString(_code) + "\r\n"; if(_sendContentLength) out += "Content-Length: " + String(_contentLength) + "\r\n"; if(_contentType.length()) out += "Content-Type: " + _contentType + "\r\n"; AsyncWebHeader *h; while(_headers != NULL){ h = _headers; _headers = _headers->next; out += h->toString(); delete h; } out += "\r\n"; _headLength = out.length(); return out; }