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

Метод http.Request.FormValue

Метод http.Request.FormValue возвращает первое значение параметра формы из HTTP-запроса. В качестве аргумента метод принимает ключ параметра, значение которого нужно получить. Метод автоматически вызывает ParseForm и ParseMultipartForm при необходимости, поэтому его можно вызывать без предварительного разбора формы. Если параметр не найден, метод возвращает пустую строку.

Синтаксис

req.FormValue(key string) string

Пример

Давайте получим значение параметра 'name' из формы HTTP-запроса:

package main import ( "fmt" "net/http" ) func handler(w http.ResponseWriter, r *http.Request) { name := r.FormValue("name") fmt.Printf("Name: %s\n", name) fmt.Fprintf(w, "Hello, %s", name) } func main() { http.HandleFunc("/", handler) http.ListenAndServe(":8080", nil) }

Результат выполнения кода при отправке POST-запроса с параметром 'name':

"Name: John"

Пример

Давайте обработаем GET-запрос с параметрами в URL:

package main import ( "fmt" "net/http" ) func handler(w http.ResponseWriter, r *http.Request) { age := r.FormValue("age") city := r.FormValue("city") fmt.Printf("Age: %s, City: %s\n", age, city) fmt.Fprintf(w, "Age: %s, City: %s", age, city) } func main() { http.HandleFunc("/user", handler) http.ListenAndServe(":8080", nil) }

Результат выполнения кода при запросе /age=25&city=Moscow:

"Age: 25, City: Moscow"

Пример

Давайте проверим, как метод обрабатывает отсутствующий параметр:

package main import ( "fmt" "net/http" ) func handler(w http.ResponseWriter, r *http.Request) { missing := r.FormValue("missing") if missing == "" { fmt.Println("Parameter missing parameter not found") fmt.Fprint(w, "Parameter missing") } } func main() { http.HandleFunc("/check", handler) http.ListenAndServe(":8080", nil) }

Результат выполнения кода при запросе без параметра 'missing':

"Parameter missing parameter not found"

Пример

Давайте обработаем форму с несколькими полями, включая параметр с несколькими значениями:

package main import ( "fmt" "net/http" ) func handler(w http.ResponseWriter, r *http.Request) { username := r.FormValue("username") email := r.FormValue("email") interests := r.FormValue("interests") fmt.Printf("Username: %s\n", username) fmt.Printf("Email: %s\n", email) fmt.Printf("Interests: %s\n", interests) fmt.Fprintf(w, "User: %s, Email: %s", username, email) } func main() { http.HandleFunc("/register", handler) http.ListenAndServe(":8080", nil) }

Результат выполнения кода при отправке формы:

"Username: alice" "Email: alice@example.com" "Interests: reading"

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

  • метод http.Request.ParseForm,
    который разбирает параметры формы из тела запроса
  • метод http.Request.PostFormValue,
    который возвращает значение параметра из тела POST-запроса
  • функцию http.PostForm,
    которая отправляет POST-запрос с данными формы
  • тип url.Values,
    который представляет параметры формы как map
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить