html - r.From ["username"] 给出空值

标签 html go html-parsing beego

我用 golang 写了一个小的 web 应用程序

go version go1.7.4 linux/amd64 Go Code:

r.ParseForm()
        // logic part of log in
        fmt.Println("username:", r.Form["username"])
        fmt.Println("password:", r.Form["password"])

    
HTML template
<body>
    <div class="container">
        <h1>Login In</h1>
        <form action="/login" method="POST">
            <div class="form-group">
                <label for="username">User Name</label>
                <input type="text" class="form-control" name="username" placeholder="Please enter your user name">
            </div>
            <div class="form-group">
                <label for="password">Password</label>
                <input type="password" class="form-control" name="password" placeholder="Please enter your password">
            </div>
            <button type="submit" class="btn btn-success">Login</button>
        </form>
    </div>
</body>

当我打印时使用

requestbody, _ := ioutil.ReadAll(r.Body)
log.Println("request body is", string(requestbody))

它打印正确的值以及输入的用户名和密码。 但是当我尝试使用 r.Form 打印它时,它给出了空值。 这种方法有什么问题吗?

func loginHandler(w http.ResponseWriter, r *http.Request) {
    log.Println("loginHandler")
    log.Println("request url is", r.RequestURI)
    log.Println("request method", r.Method)
    requestbody, _ := ioutil.ReadAll(r.Body)
    log.Println("request body is", string(requestbody))
    if r.Method == "POST" {
        r.ParseForm()
        // logic part of log in
        fmt.Println("username:", r.Form["username"])
        fmt.Println("password:", r.Form["password"])
        us, err := globalSessions.SessionStart(w, r)
        if err != nil {
            http.Error(w, err.Error(), http.StatusInternalServerError)
            return
        }
        w.Header().Set("Location", "/auth")
        w.WriteHeader(http.StatusFound)
        return
    }
    outputHTML(w, r, "static/login.html")
}

最佳答案

注释下面的代码:

requestbody, _ := ioutil.ReadAll(r.Body)

因为 Request.Body 的类型是 ReadCloser 将清空 r.Body

仅供引用,Golang read request body

关于html - r.From ["username"] 给出空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43580900/

相关文章:

javascript - 输入表单来演示 XSS

java - IntelliJ 的 CSS 即时验证能做多少?

xml - 我可以将 Go xml.Unmarshal 用于有序的多态类型吗?

html - 从 Google 表格中的 HTML 文本中提取 href 属性

html - 解析/提取 HTML 表格,Java 网站

Python,尝试解析html以获取电子邮件地址

javascript - angularjs http.post() 未收到响应

javascript - 使用javascript切换功能后,如何使导航链接在浏览器调整大小时重新出现/重置为默认值?

go - Go语言上的接口(interface)函数调用

elasticsearch - 更新整个选定的弹性记录