dsgsdg206050 2016-04-08 01:49
浏览 32
已采纳

向每个处理程序添加响应标头,而无需重复同一行

I am writing a small website and for every page, I am putting a server name to its header:

func httpSignUp(rw http.ResponseWriter, req *http.Request) {
    rw.Header().Set("Server", SERVER_NAME)
}

I am wondering if there's a way that I can set http.ResponseWriter's default server name, so I don't have to use the same line over and over?

  • 写回答

3条回答 默认 最新

  • duanfeiqu1989 2016-04-08 02:35
    关注

    Create a wrapper to set the header:

    func wrap(h http.Handler) http.Handler {
        return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) (
             w.Header().Set("Server", SERVER_NAME)
             h.ServeHTTP(w, r)
        })
    }
    

    Wrap individual handlers

    http.Handle("/path", wrap(aHandler)(
    http.Handle("/another/path", wrap(anotherHandler))
    

    or the root handler passed to ListenAndServe:

    log.Fatal(http.ListenAndServe(addr, wrap(rootHandler))
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 怎么求交点连线的理论解?
  • ¥20 软件开发方法学习来了
  • ¥15 微信小程序商城如何实现多商户收款 平台分润抽成
  • ¥15 HC32L176调试了一个通过TIMER5+DMA驱动WS2812B
  • ¥15 cocos的js代码调用wx.createUseInfoButton问题!
  • ¥15 关于自相关函数法和周期图法实现对随机信号的功率谱估计的matlab程序运行的问题,请各位专家解答!
  • ¥15 Python程序,深度学习,有偿私
  • ¥15 扫描枪扫条形码出现问题
  • ¥35 poi合并多个word成一个新word,原word中横版没了.
  • ¥15 【火车头采集器】搜狐娱乐这种列表页网址,怎么采集?