当前位置: 首页 > 面试题库 >

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

闻人冷勋
2023-03-14
问题内容

我正在写一个小型网站,对于每个页面,我都会在其标题中放置一个服务器名称:

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

我想知道是否有一种方法可以设置http.ResponseWriter的默认服务器名称,因此我不必一遍又一遍地使用同一行?


问题答案:

创建一个包装器以设置标题:

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)
    })
}

包装单个处理程序

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

或传递给ListenAndServe的根处理程序:

log.Fatal(http.ListenAndServe(addr, wrap(rootHandler))


 类似资料:
  • 问题内容: 如何在csv中编写多头标头,以便第二个标头值应来自数据库 //预期的输出 //以下是用于弹簧批处理写入csv的代码段 问题答案: 您可以在中执行查询,并将结果附加到标题的第一行。

  • 我有一个flask web应用程序,它使用render_template如下所示。我需要在响应中添加一个Content-Security-Policy作为额外的http响应头。我试着按照方法走,但都失败了,给了我500。 1. 在终端上,当我以localhost身份访问web应用程序时,会看到以下内容:3001 127.0.0.1--[06/APR/2015 01:45:01]“GET/HTTP/

  • 问题内容: 每当我对应用程序中的其余控制器发出请求以允许跨源资源共享时,我想将此标头添加到对客户端的每个响应中,目前我正在手动添加每个这样的方法的标头 它的工作,但非常令人沮丧。我在Spring文档中找到了webContentInterceptor,它允许我们修改每个响应的标头 但是当我使用它时,它会引发错误,即找不到名称为Access-Control-Allow-Origin的属性,因此还有其他

  • 我正在尝试在我的应用程序中添加一些标记到所有跟踪中。我尝试扩展DefaultMessageSpanCustomizer,但没有成功,如以下文档所示 但不幸的是,我不能让它工作。是否有人成功地尝试为每个应用程序跟踪添加一些标记? 非常感谢你的帮助。 乔纳森。

  • 问题内容: 我有一个Flask Web应用程序,它使用render_template如下,我需要在响应中添加一个Content-Security-Policy作为附加的HTTP响应标头。我尝试了以下方法,但都失败了,并给了我500。 1。 2。 这里有什么问题? 在终端上,以localhost:3001的身份访问Web应用程序时,我看到以下内容 127.0.0.1–[2015年4月6日01:45:

  • 我已经通过Spring Boot实现了一个Kafka简单主题消费者,我想使用@KafkaListener注释来获取消息。到目前为止还不错,我对Kafka的方法很满意。我现在面临的问题是,我正在阅读的由第三方发送到这个主题的内容,我认为是由云流绑定生成的,并且有如下标题:ëë½ contentType“text/plain” originalContentType“application/jso