Go Web --- 接收get和post数据
在《Go Web编程》这本书中,介绍了很多接收get和post参数的方法,反倒让人不知道该用哪一种方法了。
所以,我觉得可以先随意选一种方式,用熟练之后,再考虑其他方式。
最简单的方法:
request.FormValue("filed"),获取get或者post的数据
request.PostFormValue("field"),获取post的数据
index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <form action='http://localhost:8081/index?age=29&name=Jane' method='post' encrypt="application/x-www-form-urlencoded"> <input type="text" name="addr" value="beijing"><br> <input type="text" name="gender" value="male"><br> <input type="submit" name="submit"> <input type="reset" name="reset"><br> </form> </body> <script> </script> </html>
server.go
package main import ( "fmt" "net/http" ) func index(response http.ResponseWriter, request *http.Request) { age := request.FormValue("age") gender := request.FormValue("gender") addr := request.FormValue("addr") name := request.FormValue("name") fmt.Fprintln(response, "age:", age, "\n", "gender:", gender, "\n", "addr:", addr, "\n", "name:", name, "\n", ) } func main() { server := http.Server{ Addr: "127.0.0.1:8081", } http.HandleFunc("/index", index) server.ListenAndServe() }
接收文件
可以使用最简单的request.FormFile("field")
package main import ( "fmt" "io/ioutil" "net/http" ) func index(response http.ResponseWriter, request *http.Request) { file, _, err := request.FormFile("myfile") if err != nil { panic("文件接收失败") } else { data, err := ioutil.ReadAll(file) if err != nil { panic("文件读取失败") } else { fmt.Fprintln(response, string(data)) } } } func main() { server := http.Server{ Addr: "127.0.0.1:8081", } http.HandleFunc("/index", index) server.ListenAndServe() }
如需转载,请注明文章出处,谢谢!!!