Abaixo, segue meu código que segui conforme orientações em aula, porém ao executar no terminal, não está me retornando os sites, aqui está o código ainda com o pacote 'io/ioutil', apenas para demonstrar que segui o que estava sendo indicado em aula, porém fiz a alteração para os 'os' e segui com a mesma dificuldade, e mesmo revisando, procurando, até jogando no chatgpt da vida, não localizei o erro, e o que me foi indicado de sugestão era uma etapa posterior a vista em aula, mas antes de avançar, gostaria de resolver meu problema inicial.
package main
import (
"fmt"
"io/ioutil"
"net/http"
"os"
"time"
)
const monitoramentos = 3
const delay = 5
func main() {
exibeIntroducao()
leSitesDoArquivo()
for {
exibeMenu()
comando := leComando()
switch comando {
case 1:
iniciarMonitoramento()
case 2:
fmt.Println("Exibindo logs...")
case 0:
fmt.Println("Saindo do programa...")
os.Exit(0)
default:
fmt.Println("Não conheço este comando")
os.Exit(-1)
}
}
}
func exibeIntroducao() {
nome := "Wesley"
versao := 1.2
fmt.Println("Olá, sr.", nome)
fmt.Println("Este programa está na versão", versao)
}
func exibeMenu() {
fmt.Println("1- Iniciar monitoramento")
fmt.Println("2- Exibir logs")
fmt.Println("0- Sair do programa")
}
func leComando() int {
var comandoLido int
fmt.Scan(&comandoLido)
fmt.Println("O comando escolhido foi", comandoLido)
fmt.Println("")
return comandoLido
}
func iniciarMonitoramento() {
fmt.Println("Monitorando...")
// sites := []string{"https://httpbin.org/status/200", "https://www.alura.com.br", "https://www.caelum.com.br/"}
sites := leSitesDoArquivo()
for i := 0; i < monitoramentos; i++ {
for i, site := range sites {
fmt.Println("Testando site", i, ":", site)
testaSite(site)
}
time.Sleep(delay * time.Second)
fmt.Println("")
}
fmt.Println("")
}
func testaSite(site string) {
resp, err := http.Get(site)
if err != nil {
fmt.Println("Ocorreu um erro:", err)
}
if resp.StatusCode == 200 {
fmt.Println("Site", site, "foi carregado com sucesso")
} else {
fmt.Println("site", site, "está com problemas. Status code:", resp.StatusCode)
}
}
func leSitesDoArquivo() []string {
var sites []string
// arquivo, err := os.Open("sites.txt")
arquivo, err := ioutil.ReadFile("sites.txt")
if err != nil {
fmt.Println("Ocorreu um erro:", err)
}
fmt.Println(string(arquivo))
return sites
}