Rumah > pembangunan bahagian belakang > Golang > golang mendapat laluan permintaan

golang mendapat laluan permintaan

WBOY
Lepaskan: 2023-05-15 10:03:07
asal
985 orang telah melayarinya

Golang ialah bahasa pengaturcaraan yang pantas, boleh dipercayai dan tetap yang digunakan secara meluas dalam aplikasi web, perkhidmatan rangkaian dan tugas pemprosesan data. Dalam aplikasi web, program perlu menerima permintaan daripada klien atau penyemak imbas, dan kemudian memproses setiap permintaan Ia biasanya perlu mendapatkan laluan permintaan untuk fungsi penghalaan. Artikel ini akan membincangkan cara mendapatkan laluan permintaan di Golang.

Bagaimana untuk mendapatkan laluan permintaan di Golang?

Di Golang, untuk mendapatkan laluan permintaan, anda perlu menggunakan objek bernama http.Request. Objek ini mengandungi semua maklumat tentang permintaan, termasuk kaedah permintaan, pengepala permintaan, badan permintaan, laluan permintaan, dsb. Dengan mengendalikan objek ini, kita boleh mendapatkan laluan permintaan.

Pertama sekali, apabila kita membina pelayan web, kita perlu menggunakan pakej http Golang. Berikut ialah kod contoh pelayan HTTP asas:

package main

import (
    "fmt"
    "log"
    "net/http"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        // 获取请求路径
        path := r.URL.Path
        fmt.Println("请求路径: ", path)
        fmt.Fprintln(w, "Welcome to my website!")
    })

    log.Fatal(http.ListenAndServe(":8080", nil))
}
Salin selepas log masuk

Dalam kod di atas, kami mentakrifkan fungsi pengendali HTTP yang menerima dua parameter: objek jenis http.ResponseWriter dan http.Request. Dalam fungsi tersebut, kami memanggil kaedah r.URL.Path untuk mendapatkan laluan permintaan dan mencetaknya.

Cara lain untuk mendapatkan laluan permintaan ialah dengan mengakses atribut http.Request r.URL.Path. Berikut ialah contoh kod:

package main

import (
    "fmt"
    "log"
    "net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
    // 获取请求路径
    path := r.URL.Path
    fmt.Println("请求路径: ", path)
    fmt.Fprintln(w, "Welcome to my website!")
}

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

Dalam kod di atas, kami mentakrifkan fungsi pemprosesan handler Apabila permintaan diterima, dapatkan laluan permintaan melalui r.URL.Path dan keluarkannya ke konsol . Pada masa yang sama, kami menulis logik respons di dalam fungsi untuk membalas dengan mesej alu-aluan kembali kepada pelanggan.

Untuk maklumat terperinci tentang objek http.Request dan http.ResponseWriter, sila rujuk dokumentasi rasmi Golang. Dalam artikel ini, kami memberi tumpuan terutamanya pada cara mendapatkan laluan permintaan.

Untuk URL yang berbeza, mungkin terdapat kaedah dan logik tindak balas yang berbeza. Oleh itu, dalam persekitaran pengeluaran sebenar, kita perlu menggunakan penghala yang berbeza untuk mengendalikan permintaan yang berbeza. Biasanya, kami menggunakan penghala pihak ketiga seperti Gorilla Mux. Gorilla Mux ialah penghala yang berkuasa dan perpustakaan pemadanan URL yang boleh membantu kami mengurus logik penghalaan dengan lebih baik.

package main

import (
    "fmt"
    "log"
    "net/http"

    "github.com/gorilla/mux"
)

func main() {
    // 创建新路由器
    r := mux.NewRouter()

    r.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintln(w, "Hello, world!")
    })

    // 设定路由
    r.HandleFunc("/articles", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintln(w, "这是我的文章列表页面!")
    })

    // 设定路由
    r.HandleFunc("/articles/{id}", func(w http.ResponseWriter, r *http.Request) {
        // 获取路由参数
        vars := mux.Vars(r)
        id := vars["id"]

        fmt.Fprintf(w, "这是文章 %s 的详细页面!", id)
    })

    // 启动服务器
    log.Fatal(http.ListenAndServe(":8080", r))
}
Salin selepas log masuk

Dalam penghala, kita boleh menggunakan kaedah r.HandleFunc untuk menentukan peraturan penghalaan dan fungsi pemprosesan yang berbeza. Sebagai contoh, dalam contoh di atas, kami mentakrifkan dua peraturan penghalaan, /articles dan /articles/{id}, peraturan penghalaan pertama digunakan untuk membalas permintaan halaman senarai artikel dan peraturan penghalaan kedua digunakan untuk mendapatkan kandungan khusus berdasarkan id Halaman butiran artikel.

Jika URL mengandungi parameter dinamik, kita boleh menggunakan kaedah mux.Vars untuk mendapatkan nilainya dan menghantar parameter ini kepada fungsi pengendali. Dalam kod di atas, kami memperoleh nilai parameter vars["id"] dalam URL melalui id dan mengeluarkannya kepada klien.

Ringkasan

Di Golang, anda perlu mendapatkan laluan permintaan melalui objek http.Request. Kita boleh menggunakan atribut r.URL.Path untuk mendapatkan laluan. Pada masa yang sama, kami juga boleh menggunakan penghala pihak ketiga untuk mengurus logik penghalaan dan fungsi pemprosesan. Gorilla Mux ialah penghala yang berkuasa dan perpustakaan pemadanan URL yang boleh membantu kami mengurus logik penghalaan dengan lebih baik.

Atas ialah kandungan terperinci golang mendapat laluan permintaan. 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