Как в golang получить значения post/get параметров?

Пользователь

от maggie_morar , в категории: Общие вопросы , 14 дней назад

Как в golang получить значения post/get параметров?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp Pocket

1 ответ

Пользователь

от regan.gerhold , 8 дней назад

@maggie_morar 

В Go можно использовать пакет net/http для получения значений параметров POST и GET запросов.


Для получения параметров GET запроса необходимо использовать метод r.URL.Query(), где r - объект типа http.Request. Метод Query() возвращает карту, где ключами являются названия параметров, а значениями – массивы строк, поскольку GET запрос может содержать несколько значений для одного параметра.


Пример получения значений GET параметров:

1
2
3
4
5
6
7
8
func handler(w http.ResponseWriter, r *http.Request) {
    // Получение значений GET параметров
    params := r.URL.Query()

    // Получение значения параметра 'name' и его вывод
    name := params.Get("name")
    fmt.Println("Name:", name)
}


Чтобы получить значения POST параметров, необходимо сначала установить тип содержимого запроса в application/x-www-form-urlencoded с помощью метода r.ParseForm(). Затем можно использовать метод r.PostForm.Get() для получения значений POST параметров.


Пример получения значений POST параметров:

1
2
3
4
5
6
7
8
func handler(w http.ResponseWriter, r *http.Request) {
    // Установка типа содержимого запроса в "application/x-www-form-urlencoded"
    r.ParseForm()

    // Получение значения параметра 'name' и его вывод
    name := r.PostForm.Get("name")
    fmt.Println("Name:", name)
}


В конечном итоге, вы можете зарегистрировать этот обработчик в своем сервере HTTP. Например:

1
2
3
4
func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)
}


Теперь, при запросе к вашему серверу с GET или POST параметрами, значения этих параметров будут получены и выведены в консоль.