Open
Description
Hi,
I use the sample "SimpleGet" to get a UUID from a server.
The output show me a very long time on getting the status code.
making GET request
Time after get Request: 524ms
Time after get Status code: 9538ms
Time after get response body: 9566ms
Status code: 200
Response:
{
"uuid" : "b44c5405-7c56-4879-b4e8-ef28fc06d4a7"
}
Wait five seconds
Here the code...
void loop() {
Serial.println("making GET request");
long startTime = millis();
client.get("/api/v1/uuid");
Serial.println();
Serial.print("Time after get Request: ");
Serial.print(millis() - startTime);
Serial.println("ms");
// read the status code and body of the response
statusCode = client.responseStatusCode();
Serial.print("Time after get Status code: ");
Serial.print(millis() - startTime);
Serial.println("ms");
response = client.responseBody();
Serial.print("Time after get response body: ");
Serial.print(millis() - startTime);
Serial.println("ms");
Serial.println();
Serial.print("Status code: ");
Serial.println(statusCode);
Serial.println("Response: ");
Serial.println(response);
Serial.println("Wait five seconds");
delay(5000);
}
is there something wrong with this simple code?
Activity
sandeepmistry commentedon Mar 20, 2018
@cawena what if you add a
client.stop()
before the wait?In the future if would be valuable to get the entire sketch you are using, as well as the hardware you are using.
georgeveys commentedon Jan 5, 2021
Can anyone shed any light on this? I'm also experiencing almost a second of latency on decoding the response and status code
mmaxbar commentedon Apr 13, 2021
@georgeveysSFL
try this:
in "HttpClient.h" go to this entry, change the
kHttpWaitForDataDelay
from 1000 to 100:The one second latency comes from the code running through too quickly, so there is no response to be collected yet. This triggers a 1000ms Delay.
If you don't want to mess with the library, you could also add a sufficient wait before trying to access the response in your code.
andersruneson commentedon Apr 27, 2023
This is fixed in below PR
#125
However, the time could be reduced even more, the client tries several times until data is returned.