📌  相关文章
📜  golang 获取请求数据 - Go 编程语言(1)

📅  最后修改于: 2023-12-03 15:31:02.145000             🧑  作者: Mango

Golang 获取请求数据

在Web开发中,获取请求数据是非常关键的。本文将介绍在Golang中如何获取请求数据。

获取GET请求数据

通过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()方法获取名为nameage的参数值。

获取POST请求数据

在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()方法获取名为nameage的参数值。

获取JSON请求数据

在处理前端页面发送的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请求,我们都可以轻松地获取请求数据并在代码中使用。