博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
构建HTTP中间件
阅读量:6762 次
发布时间:2019-06-26

本文共 984 字,大约阅读时间需要 3 分钟。

第一种方式,使用类型形式构建HTTP中间件,结构myHandler有个属性是http.Handler类型,这个类型有个ServeHTTP方法

package mainimport (	"fmt"	"net/http")type myHandler struct {	Addrhost string	Headler  http.Handler}func (this *myHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {	this.Headler.ServeHTTP(w, r)}func HandlerFunc(w http.ResponseWriter, r *http.Request) {	fmt.Println(r.Host)	w.Write([]byte("你好世界"))}func main() {	my := &myHandler{		Headler:  http.HandlerFunc(HandlerFunc),		Addrhost: ":8080",	}	http.ListenAndServe(":8080", my)}

第二种方式,函数方式
package mainimport (	"fmt"	"net/http")func gethandler(addhost string, headler http.Handler) http.Handler {	fn := func(w http.ResponseWriter, r *http.Request) {		fmt.Println(r.Host)		headler.ServeHTTP(w, r)	}	return http.HandlerFunc(fn)}func myhandler(w http.ResponseWriter, r *http.Request) {	w.Write([]byte("你好世界"))}func main() {	hd := gethandler(":8080", http.HandlerFunc(myhandler))	http.ListenAndServe(":8080", hd)}

转载于:https://my.oschina.net/tongjh/blog/351620

你可能感兴趣的文章
Java-异常总结
查看>>
如何提升你的面试机会?
查看>>
JavaScript HTML5 手机版手机版网站起码要实现一些基本的功能吧:
查看>>
递归获取XML元素
查看>>
Linux系统教程 标准输入/输出和重定向
查看>>
JQuery的Ajax跨域请求的
查看>>
Lintcode--005(最长公共子序列)
查看>>
转: 微信开源C/C++ RPC框架PhxRPC
查看>>
Delphi Form的释放和隐藏:free,hide,close
查看>>
[物理学与PDEs]第1章第8节 静电场和静磁场 8.1 静电场
查看>>
Chrome 62 的大坑:修改密码后始终使用保存的旧密码登录
查看>>
如何在Kubernetes部署期间正确处理DB模式
查看>>
甲骨文11.9亿美元收云解决方案供应商Aconex,预计明年上半年完成
查看>>
利用 Universal Transformer,翻译将无往不利!
查看>>
Python 做图片清晰度识别
查看>>
Android多媒体之SoundPool+pcm流的音频操作
查看>>
Vue-Donut——专用于构建Vue的UI组件库的开发框架
查看>>
硬核NeruIPS 2018最佳论文,一个神经了的常微分方程
查看>>
个推Node.js 微服务实践:基于容器的一站式命令行工具链
查看>>
Express源码学习-路由篇
查看>>