📅  最后修改于: 2023-12-03 15:31:02.145000             🧑  作者: Mango
在Web开发中,获取请求数据是非常关键的。本文将介绍在Golang中如何获取请求数据。
通过Golang的标准库中的net/http
包可以获取GET请求数据。通过以下方式可以获取请求的URL参数:
func handler(w http.ResponseWriter, r *http.Request) {
values := r.URL.Query()
name := values.Get("name")
age := values.Get("age")
fmt.Fprintf(w, "Name=%s; Age=%s", name, age)
}
在上面的例子中,我们首先获取了请求中的URL参数,然后通过Get()
方法获取名为name
和age
的参数值。
在Golang中,我们可以通过net/http
包中的ParseForm()
方法解析POST请求数据。在下面的例子中,我们通过ParseForm()
方法获取提交的表单数据:
func handler(w http.ResponseWriter, r *http.Request) {
r.ParseForm()
name := r.Form.Get("name")
age := r.Form.Get("age")
fmt.Fprintf(w, "Name=%s; Age=%s", name, age)
}
在上面的例子中,我们首先通过ParseForm()
方法解析POST请求数据,然后通过Get()
方法获取名为name
和age
的参数值。
在处理前端页面发送的JSON数据时,我们可以通过Golang的json
包解析JSON请求数据。以下是一个解析JSON请求数据的例子:
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
func handler(w http.ResponseWriter, r *http.Request) {
var p Person
err := json.NewDecoder(r.Body).Decode(&p)
if err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
fmt.Fprintf(w, "Name=%s; Age=%d", p.Name, p.Age)
}
在上面的例子中,我们定义了一个Person
类型,然后通过json.NewDecoder()
方法解析请求中的JSON数据并将其存储在p
变量中。
以上就是获取请求数据的几种方法。无论是GET请求、POST请求还是JSON请求,我们都可以轻松地获取请求数据并在代码中使用。