猿问

错误 GET 页面请求

我是 Golang 的新手,我正在尝试创建一个简单的 Web 服务器,但在 GET 请求中出现错误。这是代码:


import (

    "fmt"

    "html/template"

    "log"

    "net/http"

    "strings"

)


func sayhelloName(w http.ResponseWriter, r *http.Request) {

    r.ParseForm() 

    fmt.Println(r.Form) // print information on server side.

    fmt.Println("path", r.URL.Path)

    fmt.Println("scheme", r.URL.Scheme)

    fmt.Println(r.Form["url_long"])

    for k, v := range r.Form {

        fmt.Println("key:", k)

        fmt.Println("val:", strings.Join(v, ""))

    }

    fmt.Fprintf(w, "Hello Worrld!") // write data to response

}


func login(w http.ResponseWriter, r *http.Request) {

    fmt.Println("method:", r.Method) //get request method

    if r.Method == "GET" {

        t, _ := template.ParseFiles("login.gtpl")

        t.Execute(w, nil)

    } else {

        r.ParseForm()

        // logic part of log in

        fmt.Println("username:", r.Form["username"])

        fmt.Println("password:", r.Form["password"])

    }

}


func main() {

    http.HandleFunc("/", sayhelloName) // setting router rule

    http.HandleFunc("/login", login)

    err := http.ListenAndServe(":9090", nil) // setting listening port

    if err != nil {

        log.Fatal("ListenAndServe: ", err)

    }

}


慕的地8271018
浏览 215回答 2
2回答

狐的传说

总是处理你的错误 t, _ := template.ParseFiles("login.gtpl")如果这失败了怎么办?然后t是 nil 并且你得到同样的错误

米脂

不要忽略从 template.ParseFiles 返回的错误将包含目录的路径放入 template.ParseFiles
随时随地看视频慕课网APP

相关分类

Go
我要回答