go原生httpServer封装

main.go

package main
import (
	"log"
	"test/router"
)

func main() {
    
    
	r := router.NewServer("8080")
	if err := r.ListenAndServe(); err != nil {
    
    
		log.Fatal(err)
	}
}

router/router.go

package router

import (
	"net/http"
	"test/controller"
	"time"
)

func NewServer(port string) *http.Server {
    
    
	//创建Mux
	mux := http.NewServeMux()
	SetupRouters(mux)
	server := &http.Server{
    
    
		Addr: ":"+port,
		Handler: mux, //注册处理器
		ReadTimeout: 10 * time.Second,
	}
	return  server
}

func SetupRouters(mux *http.ServeMux)  {
    
    
	mux.HandleFunc("/hello", controller.Hello)
}

controller/hello.go

package controller

import (
	"fmt"
	"io/ioutil"
	"net/http"
)

func Hello(w http.ResponseWriter, r *http.Request) {
    
    
	body, _ := ioutil.ReadAll(r.Body) //读取
	fmt.Println(string(body))
	w.Write(body)//响应
}


猜你喜欢

转载自blog.csdn.net/m0_38004619/article/details/115242121
今日推荐