在Golang中无法将输入表单数据作为变量

I want to take this input form 'email' value as a variable in Go. But I am unable to do so.

My html code:

<form class="login100-form validate-form" role="form" 
                        action="/forgot" method="POST">

<input class="input100" type="email" name="email">

<input type="submit" value="Send Token" class="login100-form-btn"></form>

My golang code:


func main() {
router := newRouter()
router.HandleFunc("/forgot", forgotPageHandler)
}

func forgotPageHandler(writer http.ResponseWriter, request *http.Request) {

    pInfo := PageInfo{
        Title: "Forgot",
    }
    _, err := ActiveSession(writer, request)

    if request.Method == "GET" {

        fmt.Println("forgotGetHandler")
        if err != nil {
            generateHTML(writer, pInfo, "layout", "navPublic", "forgot")
        } else {
            generateHTML(writer, pInfo, "layout", "navPrivate", "forgot")
        }

    } else {
        fmt.Println("forgotPostHandler")
        request.ParseForm()
        fmt.Println("email:", request.Form["email"])
    }

}

My request.method = GET is working while POST is not even reaching in the else clause.

  } else {
        fmt.Println("forgotPostHandler")
        request.ParseForm()
        fmt.Println("email:", request.Form["email"]) // -- Problem is here
    }

You are using requst.Form[xxx]. Use r.FormValue("email") instead of request.Form["email"]

You code should be

  } else {
            fmt.Println("forgotPostHandler")
            request.ParseForm()
            fmt.Println("email:", r.FormValue("email")) // -- Solution is here
        }