Avatar ·

Como definir timeout para http.Get() em Golang?

Olá a todos! Sou novo em Go e enfrentei um problema ao executar requisições HTTP.\n\nPreciso enviar requisições GET para uma API externa, mas às vezes o servidor trava ou responde muito lentamente. No exemplo padrão da documentação, uso `http.Get()`, e ele simplesmente fica pendurado infinitamente, bloqueando todo o programa. Aqui está meu código:\n\n```go\nresp, err := http.Get("https://api.example.com/data")\nif err != nil {\n log.Fatal(err)\n}\ndefer resp.Body.Close()\n```\n\nO problema é que, se o servidor não responder, o programa trava para sempre. Quero definir um timeout, por exemplo, 5 segundos, para que, em caso de falta de resposta, o programa gere um erro e continue funcionando.\n\nTentei pesquisar na documentação, mas não encontrei uma maneira simples de adicionar timeout ao `http.Get()`. Vi algo sobre `http.Client`, mas não entendi como.