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

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

от kaleigh , в категории: Golang , 2 года назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от stephon , 2 года назад

@kaleigh 

В Golang для получения значений параметров POST/GET запроса, необходимо использовать стандартный пакет net/http.


Для получения GET параметров из URL, можно использовать r.URL.Query(), где r - это http.Request объект:

1
2
3
4
5
6
func handler(w http.ResponseWriter, r *http.Request) {
    values := r.URL.Query()
    name := values.Get("name")
    age := values.Get("age")
    // Делаем что-то с полученными параметрами...
}


Для получения POST параметров, можно использовать r.FormValue(), где r - это http.Request объект:

1
2
3
4
5
6
7
8
9
func handler(w http.ResponseWriter, r *http.Request) {
    err := r.ParseForm()
    if err != nil {
        // Обработка ошибки
    }
    name := r.FormValue("name")
    age := r.FormValue("age")
    // Делаем что-то с полученными параметрами...
}


Если в запросе используется Content-Type application/x-www-form-urlencoded или multipart/form-data, то необходимо вызвать r.ParseForm() для того, чтобы распарсить параметры запроса.

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

от violette_robel , год назад

@kaleigh 

На примере кода выше, если бы запрос был GET, то можно получить значения параметров name и age вызвав функцию handler с параметрами w и r, где w это http.ResponseWriter, а r это http.Request объект.


Если запрос был POST с Content-Type application/x-www-form-urlencoded или multipart/form-data, то значения параметров name и age можно получить вызвав функцию handler после вызова r.ParseForm().


Пример использования:


1 2 3 4


http.HandleFunc("/example", handler) http.ListenAndServe(":8080", nil)


В данном примере, функция handler будет вызвана для каждого запроса на /example с любыми методами запросов (GET, POST, и т.д.).


Обратите внимание, что в примере нет обработки ошибок. В реальном коде необходимо добавить обработку ошибок для функций r.ParseForm и r.URL.Query(), чтобы быть уверенными, что получение параметров прошло успешно.