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

Метод http.Request.PostFormValue

Метод http.Request.PostFormValue возвращает значение первого поля формы с указанным именем, которое было отправлено в теле HTTP-запроса методом POST. Метод автоматически вызывает ParseForm, если это еще не было сделано. В качестве параметра он принимает строку с именем поля, а возвращает строковое значение или пустую строку, если поле не найдено.

Важное отличие от FormValue заключается в том, что PostFormValue игнорирует параметры из строки запроса (query string) и работает только с данными из тела POST-запроса.

Синтаксис

func (r *Request) PostFormValue(key string) string

Пример с простой POST-формой

Давайте создадим простой HTTP-сервер, который принимает POST-запрос с формой и извлекает значения полей:

package main import ( "fmt" "net/http" ) func handler(w http.ResponseWriter, r *http.Request) { if r.Method == http.MethodPost { name := r.PostFormValue("name") age := r.PostFormValue("age") fmt.Fprintf(w, "Name: %s, Age: %s", name, age) } } func main() { http.HandleFunc("/", handler) http.ListenAndServe(":8080", nil) }

При отправке POST-запроса с полями name=Alice и age=30, сервер вернет строку:

"Name: Alice, Age: 30"

Пример с отсутствующим полем

Если запросить поле, которое отсутствует в форме, метод вернет пустую строку:

package main import ( "fmt" "net/http" ) func handler(w http.ResponseWriter, r *http.Request) { if r.Method == http.MethodPost { email := r.PostFormValue("email") fmt.Fprintf(w, "Email: %q", email) } } func main() { http.HandleFunc("/", handler) http.ListenAndServe(":8080", nil) }

Если поле email не было отправлено, результат будет:

"Email: \"\""

Пример с несколькими значениями

Метод PostFormValue всегда возвращает первое значение, даже если поле содержит несколько значений:

package main import ( "fmt" "net/http" ) func handler(w http.ResponseWriter, r *http.Request) { if r.Method == http.MethodPost { colors := r.PostFormValue("colors") fmt.Fprintf(w, "First color: %s", colors) } } func main() { http.HandleFunc("/", handler) http.ListenAndServe(":8080", nil) }

При отправке поля colors со значениями red, green, blue, результат будет:

"First color: red"

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

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