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