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

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

от maggie_morar , в категории: Общие вопросы , 5 месяцев назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp Pocket

2 ответа

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

от regan.gerhold , 5 месяцев назад

@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 параметрами, значения этих параметров будут получены и выведены в консоль.

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

от natalia_miller , 5 месяцев назад

@maggie_morar 

Приведенные выше примеры демонстрируют, как получить значения параметров "name" из GET и POST запросов. Вы можете адаптировать эти примеры для получения других параметров или для обработки запросов со сложными структурами данных, такими как JSON.


Кроме использования net/http пакета, также можно использовать сторонние библиотеки для обработки запросов, такие как gorilla/mux или gin-gonic/gin. Эти библиотеки облегчают работу с маршрутами, параметрами запросов и другими задачами, связанными с веб-разработкой на Go.