简单的golang Web服务

简单的web

func webHello(w http.ResponseWriter, r *http.Request) {
    w.Write([]byte("hello world"))
}

func main() {
    addr := ":9527"
    http.HandleFunc("/", webHello)
    http.ListenAndServe(addr, nil)
}

这是一个最简单的web,监听9527端口,当有网络请求时回调webHello函数。
这里的请求路径的是 ‘/’ ,所有的请求都会被这个匹配上。

那我想要处理特定的访问路径呢? 现在往代码里面添一点东西

func webHello(w http.ResponseWriter, r *http.Request) {
    w.Write([]byte("hello world"))
}

func webMouse(w http.ResponseWriter, r *http.Request) {
    w.Write([]byte("hello little mouse"))
}

func main() {
    addr := ":9527"
    http.HandleFunc("/", webHello)
    http.HandleFunc("/mouse", webMouse)
    http.ListenAndServe(addr, nil)
}

可以访问 http://127.0.0.1:9527http://127.0.0.1:9527/mouse 将得到不同的结果

这样可以对不同的请求路径来响应,那么需要对不同的方法来响应呢?

type webServer struct{}

func (*webServer) ServeHTTP(w http.ResponseWriter, r *http.Request) {
    if r.Method == http.MethodGet {
        if strings.HasPrefix(r.RequestURI, "/test/get") {
            w.Write([]byte("GET little mouse"))
        }
        w.Write([]byte("GET Request"))
    }

    w.Write([]byte("test"))
}

func main() {
    addr := ":9527"
    http.Handle("/test/", &webServer{})
    http.ListenAndServe(addr, nil)
}

访问 http://127.0.0.1/test/get 用get访问和post put 等其他方法访问得到不同的结果。

本篇分享了最基本的golang的web服务端。只用了最少的代码,方便初学者理解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值