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()
}

  

  

 

  

posted @ 2018-06-11 16:39  寻觅beyond  阅读(442)  评论(0)    收藏  举报
返回顶部