栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 面试经验 > 面试问答

从外部Go中间件控制HTTP标头

面试问答 更新时间:发布时间: 百科书网 趣学号

您可以定义一个自定义类型,该类型将包装ResponseWriter并在写入所有标头之前插入Server标头,但要付出额外的间接层费用。这是一个例子:

type serverWriter struct {    whttp.ResponseWriter    name        string    wroteHeader bool}func (s serverWriter) WriteHeader(pre int) {    if s.wroteHeader == false {        s.w.Header().Set("Server", s.name)        s.wroteHeader = true    }    s.w.WriteHeader(pre)}func (s serverWriter) Write(b []byte) (int, error) {    return s.w.Write(b)}func (s serverWriter) Header() http.Header {    return s.w.Header()}// Server attaches a Server header to the response.func Server(h http.Handler, serverName string) http.Handler {    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {        sw := serverWriter{ w:w, name:        serverName, wroteHeader: false,        }        h.ServeHTTP(sw, r)    })}

我在这里写了更多有关此的内容。https://kev.inburke.com/kevin/how-to-write-go-
middleware/



转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/471160.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号