Go-搭建服务器(自己写方法)

1.自己写方法

image

package main

import (
	"fmt"
	"net/http"
)

type MyHandler struct{}

func (m *MyHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
	fmt.Fprintln(w, "通过自己创建的处理器处理请求! ")
}

func main() {
	myHandler := MyHandler{}
	http.Handle("/myHandler", &myHandler)
	//创建路由
	http.ListenAndServe(":8080", nil)
	//http的端口是80 https的端口是443
	//https://www.baidu.com/
}

image

输入

http://localhost:8080/myHandler

image

2.用serve对服务器作更详细的配置

image

package main

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

type MyHandler struct{}

func (m *MyHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
	fmt.Fprintln(w, "通过详细配置服务器的信息来处理请求! ")
}

func main() {
	myHandler := MyHandler{}
	//创建Server结构,并详细配置里面的字段
	server := http.Server{
		Addr:        ":8080",
		Handler:     &myHandler,
		ReadTimeout: 2 * time.Second,
	}
	server.ListenAndServe()
}

image

image

3.使用自己创建的多路复用器

在创建服务器时,我们还可以通过NewServeMux方法创建一个多路复用器

mux := http.NewServeMux()

进行创建

package main

import (
	"fmt"
	"net/http"
)

//创建处理器函数
func handler(w http.ResponseWriter, r *http.Request) {
	fmt.Fprintln(w, "通过自己创建的多路复用器处理请求", r.URL.Path)
}

//handler函数名可以随便取,里面的参数是固定的
//方法和函数的区别是:是否绑定实例

func main() {
	mux := http.NewServeMux()
	mux.HandleFunc("/", handler)
	//HanderFunc(handler)会将handler转换成一个实现了Handler接口的HandlerFunc类型
	//创建路由
	http.ListenAndServe(":8080", mux)
	//http的端口是80 https的端口是443
	//https://www.baidu.com/
}

image

image

posted @ 2022-06-11 10:20  司砚章  阅读(209)  评论(0编辑  收藏  举报