Программа Golang для проверки статуса URL/веб-сайта

Опубликовано: 9 Сентября, 2022

Здесь мы проверим статус URL-адреса с помощью Golang. Сначала мы импортируем простой пакет fmt в Golang, а затем сохраним ввод в переменной типа string, используя функцию сканирования.

Go




// Go program to enter URL
package main
 
import (
    "fmt"
)
func main() {
    var url string
    fmt.Print("Enter the URL of a website: ")
    fmt.Scan(&url)
}

Создайте файл, это может быть любое имя, которое вам нравится, но оно должно иметь расширение .go. Вы можете запустить скрипт, выполнив команду:

go run filename.go

В этом скрипте мы объявили переменную URL типа string. Мы просто отображаем информационное сообщение для ввода, которое берется с помощью функции сканирования и сохраняется в переменной URL.

Использование функции Get в HTTP

Теперь у нас есть URL-адрес в переменной, мы можем настроить модуль HTTP в Golang, чтобы создавать функции для получения данных веб-сайта или просто метаданных. Нам нужно импортировать модуль «net/http» в нашу программу.

После импорта модуля HTTP мы можем получить доступ к функции Get, предоставленной в библиотеке, поэтому с помощью метода Get мы можем просто получить ответ, отправив запрос GET на предоставленный URL-адрес. Функция Get принимает аргумент в качестве URL-адреса веб-сайта и возвращает ответ, в противном случае она возвращает ошибку, что может быть в случае, если URL-адрес не существует или недействителен.

Go




// Go program to enter URL
package main
 
import (
    "fmt"
    "net/http"
)
func main() {
    var url string
    fmt.Print("Enter the URL of a website: ")
    fmt.Scan(&url)
    resp,err := http.Get(url)
    fmt.Print(resp)
    fmt.Print(err)
}

Программу можно улучшить, добавив условие if-else для проверки ошибок и состояния выхода из программы. Таким образом, мы можем зарегистрировать ошибку от вызова функции Get, используя модуль журнала в Golang.

Go




// Go program to enter URL
package main
 
import (
    "fmt"
    "net/http"
    "log"
)
func main() {
    var url string
    fmt.Print("Enter the URL of a website: ")
    fmt.Scan(&url)
    resp,err := http.Get(url)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Print(resp)
}

Выход:

Как мы видим, у нас есть заголовок ответа с заданного URL. Теперь мы увидим, как получить код состояния из полученного объекта ответа.

Проверка кода состояния ответа

Наконец, нам нужно проверить код состояния ответа, полученного после отправки запроса GET на предоставленный URL-адрес. Мы просто напечатаем код состояния URL-адреса, который может быть дополнительно интерпретирован пользователем или изменен в соответствии с требованиями, такими как перенаправление, успех, внутренняя ошибка или не найдено.

Go




// Go program checking the response status code
package main
 
import (
    "fmt"
    "net/http"
    "log"
)
 
func main() {
    var url string
    fmt.Print("Enter the URL of a website: ")
    fmt.Scan(&url)
    resp,err := http.Get(url)
    if err != nil {
        log.Fatal(err)
    }
    status_code := resp.StatusCode
    fmt.Println(status_code,":",url)
}

В приведенном выше сценарии мы можем получить доступ к коду состояния из ответа, используя префикс точки с именем «Код состояния» и просто сохранив его в переменной status_code.

Демонстрация скрипта