Rumah > pembangunan bahagian belakang > Golang > Panduan pemprosesan permintaan golang

Panduan pemprosesan permintaan golang

WBOY
Lepaskan: 2024-02-28 12:42:03
asal
1156 orang telah melayarinya

Panduan pemprosesan permintaan golang

Panduan lengkap pemprosesan permintaan Golang

Golang ialah bahasa pengaturcaraan yang cekap, ringkas dan sangat bersesuaian yang digunakan secara meluas dalam bidang pembangunan web dan pengaturcaraan rangkaian. Dalam pengaturcaraan rangkaian, pengendalian permintaan HTTP adalah bahagian yang penting. Artikel ini akan memperkenalkan cara mengendalikan permintaan HTTP di Golang, termasuk membuat pelayan HTTP, memproses permintaan GET dan POST, penghuraian parameter, operasi kuki, dsb., dan menyediakan contoh kod terperinci.

1. Cipta pelayan HTTP

Pertama, kita perlu mencipta pelayan HTTP untuk menerima permintaan. Di Golang, anda boleh menggunakan kaedah ListenAndServe yang disediakan oleh pakej net/http untuk mencipta pelayan HTTP yang mudah Kodnya adalah seperti berikut: net/http包提供的ListenAndServe方法创建一个简单的HTTP服务器,代码如下:

package main

import (
    "net/http"
    "fmt"
)

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello, World!")
}

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)
}
Salin selepas log masuk

在上面的代码中,我们通过http.HandleFunc方法指定一个请求处理函数handler来处理根路径("/")的请求。然后通过http.ListenAndServe方法启动一个监听在8080端口的HTTP服务器。

2. 处理GET请求

接下来,我们看看如何处理GET请求。GET请求可以通过URL参数传递数据,我们可以通过r.URL.Query()方法获取这些参数。下面是一个处理GET请求的示例代码:

func handler(w http.ResponseWriter, r *http.Request) {
    query := r.URL.Query()
    name := query.Get("name")
    fmt.Fprintf(w, "Hello, %s!", name)
}
Salin selepas log masuk

在上面的代码中,我们通过query.Get方法获取名为"name"的URL参数,并将其输出到响应中。

3. 处理POST请求

与处理GET请求类似,处理POST请求也很简单。我们可以通过r.ParseForm()方法解析POST请求的表单数据。以下是一个处理POST请求的示例代码:

func handler(w http.ResponseWriter, r *http.Request) {
    r.ParseForm()
    name := r.Form.Get("name")
    fmt.Fprintf(w, "Hello, %s!", name)
}
Salin selepas log masuk

在上面的代码中,我们通过r.Form.Get方法获取名为"name"的表单数据,并将其输出到响应中。

4. 参数解析

除了获取URL参数和表单数据外,有时候还需要处理JSON数据或其他格式的请求体。我们可以使用json.Unmarshal方法对JSON数据进行解析。以下是一个处理JSON数据的示例代码:

import (
    "encoding/json"
    "io/ioutil"
)

type Person struct {
    Name string `json:"name"`
}

func handler(w http.ResponseWriter, r *http.Request) {
    body, _ := ioutil.ReadAll(r.Body)
    
    var person Person
    json.Unmarshal(body, &person)

    fmt.Fprintf(w, "Hello, %s!", person.Name)
}
Salin selepas log masuk

在上面的示例中,我们定义了一个Person结构体来解析包含"name"字段的JSON数据,并输出到响应中。

5. Cookie操作

最后,我们来看看如何进行Cookie操作。在Golang中,可以使用http.SetCookie方法设置Cookie,通过r.Cookie方法获取Cookie。以下是一个设置和获取Cookie的示例代码:

func handler(w http.ResponseWriter, r *http.Request) {
    cookie := &http.Cookie{
        Name:  "username",
        Value: "john_doe",
    }
    http.SetCookie(w, cookie)

    username, err := r.Cookie("username")
    if err != nil {
        fmt.Fprintf(w, "Error getting cookie")
    } else {
        fmt.Fprintf(w, "Hello, %s!", username.Value)
    }
}
Salin selepas log masuk

在上面的代码中,我们首先设置了一个名为"username"的Cookie,然后通过r.Cookierrreee

Dalam kod di atas , kami lulus kaedah http.HandleFunc menentukan fungsi pemprosesan permintaan handler untuk mengendalikan permintaan untuk laluan akar ("/"). Kemudian mulakan pelayan HTTP mendengar pada port 8080 melalui kaedah http.ListenAndServe.

2. Mengendalikan permintaan GET🎜🎜Seterusnya, mari lihat cara mengendalikan permintaan GET. Permintaan GET boleh menghantar data melalui parameter URL dan kami boleh mendapatkan parameter ini melalui kaedah r.URL.Query(). Berikut ialah contoh kod yang mengendalikan permintaan GET: 🎜rrreee🎜Dalam kod di atas, kami mendapat parameter URL bernama "nama" melalui kaedah query.Get dan mengeluarkannya kepada respons. 🎜🎜3. Memproses permintaan POST🎜🎜Sama seperti memproses permintaan GET, memproses permintaan POST juga sangat mudah. Kami boleh menghuraikan data borang permintaan POST melalui kaedah r.ParseForm(). Berikut ialah contoh kod yang mengendalikan permintaan POST: 🎜rrreee🎜 Dalam kod di atas, kami mendapat data borang bernama "nama" melalui kaedah r.Form.Get dan mengeluarkannya ke tengah respons. 🎜🎜4. Penghuraian parameter🎜🎜Selain mendapatkan parameter URL dan data borang, kadangkala ia juga perlu untuk memproses data JSON atau meminta badan dalam format lain. Kita boleh menggunakan kaedah json.Unmarshal untuk menghuraikan data JSON. Berikut ialah contoh kod untuk memproses data JSON: 🎜rrreee🎜Dalam contoh di atas, kami mentakrifkan struktur Orang untuk menghuraikan data JSON yang mengandungi medan "nama" dan mengeluarkannya kepada respons. 🎜🎜5. Operasi Kuki🎜🎜Akhir sekali, mari kita lihat cara melaksanakan operasi Kuki. Di Golang, anda boleh menggunakan kaedah http.SetCookie untuk menetapkan Cookie dan menggunakan kaedah r.Cookie untuk mendapatkan Cookie. Berikut ialah contoh kod untuk menetapkan dan mendapatkan Kuki: 🎜rrreee🎜Dalam kod di atas, kami mula-mula menetapkan Kuki bernama "nama pengguna", dan kemudian memperoleh Kuki melalui nilai kaedah r.Cookie dan keluarkannya kepada tindak balas. 🎜🎜Melalui contoh kod di atas, kami telah mempelajari cara mengendalikan permintaan HTTP di Golang, termasuk membuat pelayan HTTP, memproses permintaan GET dan POST, penghuraian parameter, operasi kuki, dsb. Saya harap artikel ini membantu anda, dan anda dialu-alukan untuk terus belajar dan meneroka lebih banyak penggunaan dan ciri Golang. 🎜

Atas ialah kandungan terperinci Panduan pemprosesan permintaan golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan