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,
}