馃敟 CLIENTES HTTP, CLIENT TIMEOUT

Supongamos que realizamos una consulta a un servicio web como en los ejemplos anteriores. Sin embargo el tiempo de respuesta es largo debido a que el servidor tiene demasiado tr谩fico, o la velocidad de la red no es la mejor.

En estos casos requerimos especificar el tiempo m谩ximo para que se completen las operaciones antes de considerarlas fallidas, a este valor le llamamos Timeout.

En el ejemplo anterior podemos completar la configuraci贸n del client de la siguiente forma.

client := &http.Client{
    Timeout: 5 * time.Millisecond,
}

Hemos cambiado el tiempo m谩ximo de ejecuci贸n a solo 5 milisegundos, por lo que el tiempo de espera es muy bajo. Si ejecutamos el programa obtendremos.

$ go main.go
####/##/## ##:##:## Post https://httpbin.org/post: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
exit status 1

Ahora si cambiamos los valores por algo mas razonable como 5 segundos y volvemos a ejecutar, volvemos a obtener una respuesta satisfactoria.

client := &http.Client{
    Timeout: 5 * time.Second,
}