How to set timeout for http.Get() requests in Golang?
HTTP Timeout
In Go, you can set a timeout for an http.Client by creating a custom http.Client with a Timeout field set to a time.Duration value, and then passing that custom http.Client to the http.Get() function. Here's an example:
Example
package main
import (
"net/http"
"time"
)
func main() {
client := &http.Client{
Timeout: 5 * time.Second,
}
_, err := client.Get("https://example.com")
if err != nil {
// handle error
}
// do something with response
}
HTTP timeout using Context
You can also use context package to set a timeout, Here is an example:
Example
package main
import (
"context"
"net/http"
"time"
)
func main() {
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
req, err := http.NewRequest("GET", "https://example.com", nil)
if err != nil {
// handle error
}
req = req.WithContext(ctx)
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
// handle error
}
// do something with resp
}
Most Helpful This Week
How to print struct variables data in Golang?
Add N number of Year, Month, Day, Hour, Minute, Second, Millisecond, Microsecond and Nanosecond to current date-time
Print index and element or data from Array, Slice and Map
Converting Int data type to Float in Go
How to Decode or Unmarshal bi-dimensional array of integers?
Regular expression to validate common Credit Card Numbers
How to create Map using the make function in Go?
How to delete or remove element from a Map?
How to declare and access pointer variable?
Example of Sscan vs Sscanf vs Sscanln from FMT Package
Most Helpful This Week
How to use array in Go Programming Language?Regular expression to validate the date format in "dd/mm/yyyy"How to kill execution of goroutine?Convert Int data type to Int16 Int32 Int64Convert Float32 to Float64 and Float64 to Float32Sierpinski triangle in Go Programming LanguageExample: Fields and FieldsFunc from BYTES PackageExample: Arrays of Arrays, Arrays of Slices, Slices of Arrays and Slices of SlicesPassing multiple string arguments to a variadic functionRegular expression to extract domain from URL