在Go语言中,可以使用标准库中的net/http
包来实现添加主机路由。下面是一个示例代码:
package main
import (
"fmt"
"net/http"
)
func main() {
// 创建一个自定义的处理器函数
myHandler := func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello from default route!")
}
// 创建路由器
router := http.NewServeMux()
// 添加默认路由规则
router.HandleFunc("/", myHandler)
// 添加主机路由规则
router.HandleFunc("example.com/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello from example.com route!")
})
router.HandleFunc("test.com/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello from test.com route!")
})
// 创建服务器并指定路由器
server := &http.Server{
Addr: ":8080",
Handler: router,
}
err := server.ListenAndServe()
if err != nil {
fmt.Println("Server error:", err)
}
}
在上述示例中,我们创建了两个不同主机的路由规则。对于 example.com/
的请求,将会执行与之关联的处理逻辑;对于 test.com/
的请求,也会执行相应的处理逻辑。
请注意,在本地环境中测试时,你需要修改 hosts 文件或者使用 DNS 服务器将这些虚拟域名映射到你的本地 IP 地址上。
当访问服务器时,请确保使用正确的主机名进行访问,例如 http://example.com:8080/
或者 http://test.com:8080/
。如果使用其他未定义的主机名,则会执行默认的处理逻辑。
这只是一个简单示例,你可以根据需求来添加更多的主机路由规则和处理逻辑。
内容由零声教学AI助手提供,问题来源于学员提问