6
respostas

Codigo com erro

Meu codigo esta assim:

func leSitesDoArquivo() []string {
    var sites []string

    arquivo, err := os.Open("sites.txt")
    if err != nil {
        fmt.Println("Ocorreu um erro:", err)
    }

    leitor := bufio.NewReader(arquivo)

    for {
        linha, err := leitor.ReadString('\n')
        linha = strings.TrimSpace(linha)
        sites = append(sites, linha)
        if err == io.EOF {
            break
        }
    }

    arquivo.Close()
    return sites
}

func testaSite(site string) {
    resp, err := http.Get(site)
    fmt.Println(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, "esta com problemas. Status code:", resp.StatusCode)
    }
}

func iniciarMonitoramento() {
    fmt.Println("Monitorando...")
    for i := 0; i < monitoramentos; i++ {
        sites := leSitesDoArquivo()
        for _, site := range sites {
            fmt.Println("Testando site", site)
            testaSite(site)
        }
        time.Sleep(delay * time.Second)
        fmt.Println("")
    }
    fmt.Println("")
}

Mas ele retorna o seguinte erro:

Ola sra. Rafa sua idade é 23
Este programa está na versão 1.1
1- Iniciar Monitoramento
2- Exibir Logs
0- Sair do Programa
1
O comando escolhido foi 1

Monitorando...
Testando site https://random-status-code.herokuapp.com/
https://random-status-code.herokuapp.com/
Site: https://random-status-code.herokuapp.com/ foi carregado com sucesso!
Testando site https://www.alura.com.br
https://www.alura.com.br
Site: https://www.alura.com.br foi carregado com sucesso!
Testando site https://www.caelum.com.br
https://www.caelum.com.br
Site: https://www.caelum.com.br foi carregado com sucesso!
Testando site 

Ocorreu um erro:, Get "": unsupported protocol scheme ""
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x10 pc=0x6044b4]

goroutine 1 [running]:
main.testaSite({0x0, 0x0})
    /home/rassudok/go/src/hello/hello.go:96 +0x114
main.iniciarMonitoramento()
    /home/rassudok/go/src/hello/hello.go:109 +0x1c9
main.main()
    /home/rassudok/go/src/hello/hello.go:24 +0x12a
exit status 2

Alguem sabe do que se trata?

6 respostas

Ele não conseguiu ler o ultimo site no arquivo.txt, por favor verificar se a url está escrita corretamente e sem espaços

Oi, Pedro! Obrigada. Verifiquei aqui, o arquivo sites.txt esta correto, sem espacos. Esta sem espacos e sem linha extra no fim: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Mesmo assim o erro persiste. Ele consegue verificar os 4 sites, mas quando entra na segunda iteracao do for, acontece o erro: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Consegue mandar o seu repositório pra debugar? se não quiser por aqui pode ser pelo meu email pedro.egerland94@gmail

Link do repositorio (estou aprendendo a mexer com o git ainda): https://github.com/rafa-fmartin/golang-hello

seu arquivo site.txt está com uma linha 5 em branco por isso o for da erro ele tenta pegar um site e paga vazio

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeDepois:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software