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

Метод http.Request.ParseForm

Метод http.Request.ParseForm разбирает данные формы из HTTP-запроса. Он заполняет поля Form и PostForm структуры Request. В поле Form сохраняются параметры из URL-строки запроса и тела формы (для методов POST, PUT и PATCH). В поле PostForm сохраняются только параметры из тела формы. Метод возвращает ошибку в случае проблем с разбором данных.

Синтаксис

err := req.ParseForm()

Пример

Давайте разберем простой запрос с параметрами из URL-строки и тела формы:

package main import ( "fmt" "net/http" "strings" ) func main() { // Создаем POST запрос с параметрами в URL и теле url := "http://example.com/api?name=John&age=30" body := strings.NewReader("city=NewYork&country=USA") req, _ := http.NewRequest("POST", url, body) req.Header.Set("Content-Type", "application/x-www-form-urlencoded") // Разбираем параметры формы err := req.ParseForm() if err != nil { fmt.Println("Error:", err) return } // Выводим все параметры из Form fmt.Println("Form:", req.Form) // Выводим параметры из PostForm fmt.Println("PostForm:", req.PostForm) }

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

"Form: map[age:[30] city:[NewYork] country:[USA] name:[John]]" "PostForm: map[city:[NewYork] country:[USA]]"

Пример

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

package main import ( "fmt" "net/http" ) func main() { // Создаем GET запрос с параметрами в URL url := "http://example.com/search?query=golang&page=2" req, _ := http.NewRequest("GET", url, nil) // Разбираем параметры формы err := req.ParseForm() if err != nil { fmt.Println("Error:", err) return } // Выводим все параметры из Form fmt.Println("Form:", req.Form) // Для GET запроса PostForm будет пустым fmt.Println("PostForm:", req.PostForm) }

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

"Form: map[page:[2] query:[golang]]" "PostForm: map[]"

Пример

Давайте разберем запрос только с параметрами в теле формы:

package main import ( "fmt" "net/http" "strings" ) func main() { // Создаем POST запрос с параметрами только в теле url := "http://example.com/api" body := strings.NewReader("username=alice&password=123456") req, _ := http.NewRequest("POST", url, body) req.Header.Set("Content-Type", "application/x-www-form-urlencoded") // Разбираем параметры формы err := req.ParseForm() if err != nil { fmt.Println("Error:", err) return } // Выводим все параметры из Form fmt.Println("Form:", req.Form) // Выводим параметры из PostForm fmt.Println("PostForm:", req.PostForm) }

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

"Form: map[password:[123456] username:[alice]]" "PostForm: map[password:[123456] username:[alice]]"

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

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