РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1012 of 1593 menu

Функция http.Handle

Функция http.Handle из пакета net/http позволяет зарегистрировать обработчик для конкретного маршрута. Она принимает два параметра: паттерн маршрута в виде строки и объект, реализующий интерфейс http.Handler. При поступлении HTTP-запроса на указанный маршрут будет вызван метод ServeHTTP переданного обработчика.

Синтаксис

http.Handle(pattern, handler)

Пример

Давайте зарегистрируем обработчик для корневого маршрута, который будет возвращать приветствие:

package main import ( "fmt" "net/http" ) type GreetingHandler struct{} func (h GreetingHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello, World!") } func main() { http.Handle("/", GreetingHandler{}) http.ListenAndServe(":8080", nil) }

Результат выполнения кода при обращении к http://localhost:8080/:

"Hello, World!"

Пример

Зарегистрируем обработчик для маршрута с подстановочным знаком:

package main import ( "fmt" "net/http" ) type UserHandler struct{} func (h UserHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "User profile page") } func main() { http.Handle("/user/", UserHandler{}) http.ListenAndServe(":8080", nil) }

Результат выполнения кода при обращении к http://localhost:8080/user/123:

"User profile page"

Пример

Используем встроенный обработчик для отдачи статических файлов:

package main import "net/http" func main() { fileServer := http.FileServer(http.Dir("./static")) http.Handle("/static/", http.StripPrefix("/static/", fileServer)) http.ListenAndServe(":8080", nil) }

Результат выполнения кода при обращении к http://localhost:8080/static/style.css:

"(содержимое файла style.css)"

Смотрите также

  • функцию http.HandleFunc,
    которая позволяет регистрировать функцию-обработчик напрямую
  • функцию http.ListenAndServe,
    которая запускает HTTP-сервер и начинает прослушивание порта
  • тип http.ServeMux,
    который представляет мультиплексор HTTP-запросов
  • функцию http.ServeMux.Handle,
    которая регистрирует обработчик в мультиплексоре
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить