golang beego框架学习(九)

摘要:本章节主要讲解go如何实现http中间键。

本章节主要讲解go如何实现http中间键。共有四个demo,附上demo1,更多请移步底部github。

Demo1,源码:

package main

import (
	"net/http"
)

type SingleHost struct {
	handler     http.Handler
	allowedHost string
}

/*func NewSingleHost(handler http.Handler, allowedHost string) *SingleHost {
	return &SingleHost{handler: handler, allowedHost: allowedHost}
}*/

func (s *SingleHost) ServeHTTP(w http.ResponseWriter, r *http.Request) {
	host := r.Host
	if host == s.allowedHost {
		s.handler.ServeHTTP(w, r)
	} else {
		w.WriteHeader(403)
	}
}

func myHandler(w http.ResponseWriter, r *http.Request) {
	w.Write([]byte("Demo 1 is Success!"))
}

func main() {
	//single := NewSingleHost(http.HandlerFunc(myHandler), "localhost:8081")

	single := &SingleHost{
		handler:     http.HandlerFunc(myHandler),
		allowedHost: "webyang.net",
	}

	println("Listening on port 8081")
	http.ListenAndServe(":8081", single)
}

github:https://github.com/yangsir/beego_study

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/98498.html

(0)
上一篇 2021年8月21日
下一篇 2021年8月21日

相关推荐

发表回复

登录后才能评论