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()
}
如需转载,请注明文章出处,谢谢!!!
浙公网安备 33010602011771号