处理HTTP请求参数
func body(w http.ResponseWriter, r *http.Request) {
fmt.Println(r.Header)
// 获取请求头信息:r.Header
// 获取请求头的某条信息:h := r.Header["Accept-Encoding"]或h := r.Header.Get("Accept-Encoding")
// 判断请求方式
if r.Method == "GET" {
// 方法1:获取GET请求的请求参数,接收application/x-www-form-urlencoded编码的数据
//r.ParseForm()
//fmt.Println(r.Form["name"])
// 方法2:获取GET请求的请求参数,接收application/x-www-form-urlencoded编码的数据
fmt.Println(r.URL.Query())
// 方法3:获取GET请求的请求参数,接收application/x-www-form-urlencoded编码的数据。
fmt.Println(r.FormValue("name"))
// 响应内容
fmt.Fprintln(w, r.FormValue("name"))
} else {
// 方法1:获取POST请求的请求参数
// 分别使用Form和PostForm方法获取POST的请求参数
// 使用Form和PostForm之前必须调用ParseForm方法
// 接收application/x-www-form-urlencoded编码的数据
//r.ParseForm()
//fmt.Println(r.Form["name"][0])
//fmt.Println(r.PostForm["name"][0])
// MultipartForm用于文件上传,使用前需要调用ParseMultipartForm方法
// 接收multipart/form-data编码
// 注意:FormFile是MultipartForm的简化功能
//r.ParseMultipartForm(1024)
//fmt.Println(r.MultipartForm)
// 方法2:获取POST请求的请求参数,但无法获取Multipart编码,即无法读取文件上存的数据
// FormValue将Form的功能简化,接收application/x-www-form-urlencoded编码的数据
// 注意:PostFormValue将PostForm的功能简化,接收application/x-www-form-urlencoded编码的数据
fmt.Println(r.FormValue("name"))
// 方法3:接收POST的JSON数据,因为JSON数据使用application/json编码
con, _ := ioutil.ReadAll(r.Body)
fmt.Println(string(con))
// 响应内容
fmt.Fprintln(w, r.FormValue("name"))
}
}