美文网首页
go实现http服务三

go实现http服务三

作者: Uzero | 来源:发表于2018-01-01 12:58 被阅读0次

通过map来保存你注册的 handler , 底层通过ServeHTTP来进行转发。

每个handler只有一个方法ServeHTTP,所以可以在ServeHTTP中进行路由的转发

server3.go

package main

import (

        "io"

        "net/http"

        "log"

        "time"

)

var muxmap[string] func(http.ResponseWriter, *http.Request)

func main () {

        server := &http.Server{

              Addr:":6077",

              Handler:&NewHandler{},

              ReadTimeout:5 * time.Second,

       }

        // 路由注册

        mux = make(map[string]func(http.ResponseWriter, *http.Request))

        mux["/hello"] = sayThree

        mux["/say"]   = sayFive

        err := server.ListenAndServe()

        if err != nil {

                log.Fatal(err)

        }

}

type NewHandlerstruct {}

func (*NewHandler)ServeHTTP(w http.ResponseWriter, r *http.Request) {

        if fun, ok := mux[r.URL.String()]; ok {

                fun(w, r)

                return

        }    

        io.WriteString(w, "URL:" + r.URL.String())

}

func sayThree (w http.ResponseWriter, r *http.Request) {

        io.WriteString(w, "this is version 3")

}

func sayFive (w http.ResponseWriter, r *http.Request) {

        io.WriteString(w, "this is version 4")

}

go run server3.go

相关文章

  • go实现http服务三

    通过map来保存你注册的 handler , 底层通过ServeHTTP来进行转发。 每个handler只有一个方...

  • go实现http服务一

    创建一个http服务,大致需要经历两个过程,首先需要注册路由,即提供url模式和handler函数的映射,其次就是...

  • go实现http服务二

    比第一个版本更加底层。通过ServeMux来控制路由的访问,ServeMux本质上只是一个路由管理器,而它本身也实...

  • 18.http

    Go语言内置的net/http包十分的优秀,提供了HTTP客户端和服务端的实现。 net/http介绍 Go语言内...

  • Go语言内置的net/http

    Go语言内置的net/http包十分的优秀,提供了HTTP客户端和服务端的实现。 net/http介绍Go语言内置...

  • Go语言基础之net/http

    Go语言内置的net/http包十分的优秀,提供了HTTP客户端和服务端的实现。 net/http介绍 Go语言内...

  • go http学习笔记

    go http学习笔记 @[goweb, go, http] 1.go http基础 go http服务器简例 h...

  • 17 Go 鉴权(三):JWT

    Go 使用JWT鉴权 一、实现思路: 实现一个基于jwt-go包的JWT编解码工具 实现一个HTTP服务器编写登录...

  • go实现简单的http服务

    go语言有个内置包net/http,它帮我们实现了一些简单的http相关的函数,我们只要调用这个包就可以实现简单的...

  • 处理静态文件

    go语言实现http服务器时如果处理静态文件,需要用到http.ServeFile: func ServeFile...

网友评论

      本文标题:go实现http服务三

      本文链接:https://www.haomeiwen.com/subject/kpqtnxtx.html