Go-搭建服务器(自己写方法)
1.自己写方法
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/
}
输入
http://localhost:8080/myHandler
2.用serve对服务器作更详细的配置
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()
}
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/
}
转载请注明出处,欢迎讨论和交流!