其他分享
首页 > 其他分享> > Web--Go语言学习笔记

Web--Go语言学习笔记

作者:互联网

Web–Go语言学习笔记

HTTP

Http:无状态协议,是互联网中使用Http实现计算机和计算机之间的请求与响应

模型

func HandFunc(pattern string,handler func(ResponseWriter,*Rwquest)){
    //调用函数对应访问时输入的地址
}
func ListenAndServe(addr string,handler Handler)error{
    Server:=&Server{Addr:addr,Handler:handler}
    reutrn server.ListenAndServe()
}//监听访问地址
func welcome(res http.ResponseWriter,req *http.Request){
    res.Header().Set("Content-Type","text/html;charset=utf-8")//实现go中的html代码可以被浏览器解析
    fmt.Fprintln(res,"Hello World GoLang Web")
}
func main(){
    http.HandleFunc("/",welcome)//浏览器打印Hello World GoLang Web
    http.ListenAndServe("localhost:8090",nil)
    fmt.Println("服务已启动")
}

单处理器-处理所有的地址的响应

type MyHander struct{
}
func (m *MyHander) ServeHTTP(w http.ResponseWriter,r *http.Request){
	w.Write([]byte("返回的数据"))
}
func main(){
	h:=MyHander{}
	server:=http.Server{Addr:"localhost:8091",Handler: &h}
	server.ListenAndServe()
}

多处理器-单一地址对应单一处理器

import "net/http"

type MyHander struct{
}
type MyHandle struct{
}
func (m *MyHander) ServeHTTP(w http.ResponseWriter,r *http.Request){
	w.Write([]byte("Hander返回的数据"))
}
func (m *MyHandle) ServeHTTP(w http.ResponseWriter,r *http.Request){
	w.Write([]byte("Handle返回的数据"))
}
func main(){
	h:=MyHander{}
	h1:=MyHandle{}
	server:=http.Server{Addr:"localhost:8091"}
	http.Handle("/first",&h)
	http.Handle("/second",&h1)
	server.ListenAndServe()
}

多处理函数

func first(w http.ResponseWriter, r*http.Request) {
	fmt.Println(w, "多函数first")
}
func second(w http.ResponseWriter,r*http.Request){
	fmt.Println("多函数second")
}
func main(){
	sever:=http.Server{Addr:"localhost:8090"}
	http.HandleFunc("/first",first)
	http.HandleFunc("/second",second)
	sever.ListenAndServe()
}

标签:Web,http,--,Request,ListenAndServe,func,Go,MyHander,ResponseWriter
来源: https://blog.csdn.net/weixin_54147055/article/details/117221508