mirror of
https://github.com/esp8266/Arduino.git
synced 2025-06-15 00:02:49 +03:00
Update Parsing.cpp
Complete read POST/GET request.
This commit is contained in:
@ -138,14 +138,21 @@ bool ESP8266WebServer::_parseRequest(WiFiClient& client) {
|
|||||||
|
|
||||||
if (!isForm){
|
if (!isForm){
|
||||||
if (searchStr != "") searchStr += '&';
|
if (searchStr != "") searchStr += '&';
|
||||||
//some clients send headers first and data after (like we do)
|
char *plainBuf = NULL;
|
||||||
//give them a chance
|
size_t plainLen = 0;
|
||||||
int tries = 100;//100ms max wait
|
while ( (plainLen == 0) || (plainLen < contentLength))
|
||||||
while(!client.available() && tries--)delay(1);
|
{
|
||||||
size_t plainLen = client.available();
|
//some clients send headers first and data after (like we do)
|
||||||
char *plainBuf = (char*)malloc(plainLen+1);
|
//give them a chance
|
||||||
client.readBytes(plainBuf, plainLen);
|
int tries = 100;//100ms max wait
|
||||||
plainBuf[plainLen] = '\0';
|
while(!client.available() && tries--)delay(1);
|
||||||
|
size_t newLen = client.available();
|
||||||
|
if (!newLen) break;
|
||||||
|
plainBuf = (plainBuf == NULL) ? (char *) malloc(newLen + 1) : (char *) realloc(plainBuf, plainLen + newLen + 1);
|
||||||
|
client.readBytes(&plainBuf[plainLen], newLen);
|
||||||
|
plainLen += newLen;
|
||||||
|
plainBuf[plainLen] = '\0';
|
||||||
|
}
|
||||||
#ifdef DEBUG_ESP_HTTP_SERVER
|
#ifdef DEBUG_ESP_HTTP_SERVER
|
||||||
DEBUG_OUTPUT.print("Plain: ");
|
DEBUG_OUTPUT.print("Plain: ");
|
||||||
DEBUG_OUTPUT.println(plainBuf);
|
DEBUG_OUTPUT.println(plainBuf);
|
||||||
|
Reference in New Issue
Block a user