为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我会收到与编写响应标头相关的此错误/警告?

为什么我会收到与编写响应标头相关的此错误/警告?

Go
慕桂英546537 2022-08-09 16:58:59
我收到此错误,无论我以哪种方式设置内容类型并编写状态代码。我真的不知道为什么...在我看来,这是一项非常平凡的任务 - 我只想设置内容类型和http状态代码。服务器确实可以正常工作,它为网页提供服务很好,但是每次我请求该端点/路径时,它都会将该消息记录到终端。错误http: superfluous response.WriteHeader call from main.indexHandler (server.go:49)法典package mainimport (    "context"    "log"    "net/http"    "os"    "os/signal"    "time"    "github.com/gorilla/mux")func main() {    r := mux.NewRouter()    fs := http.FileServer(http.Dir("./static"))    r.PathPrefix("/assets/").Handler(http.StripPrefix("/assets/", fs))    r.HandleFunc("/", indexHandler).Methods("GET")    server := &http.Server{        Addr:    "0.0.0.0:8080",        Handler: r,    }    go func() {        if err := server.ListenAndServe(); err != nil {            log.Fatal("Unable to start the server")        }    }()    c := make(chan os.Signal, 1)    signal.Notify(c, os.Interrupt)    <-c    ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)    defer cancel()    if err := server.Shutdown(ctx); err != nil {        log.Fatal("Unable to gracefully shutdown the server")    }}func indexHandler(w http.ResponseWriter, r *http.Request) {    w.Header().Set("Content-Type", "text/html")    w.WriteHeader(http.StatusOK)    http.ServeFile(w, r, "./static/index.html")}
查看完整描述

1 回答

?
茅侃侃

TA贡献1842条经验 获得超21个赞


func indexHandler(w http.ResponseWriter, r *http.Request) {

    w.Header().Set("Content-Type", "text/html")

    w.WriteHeader(http.StatusOK)


    http.ServeFile(w, r, "./static/index.html")

}

您不需要该电话。 将根据其在提供文件时的成功设置状态。w.WriteHeaderhttp.ServeFile


如果要了解此错误消息是如何产生的,请查看该方法的实现以及如果标头已写入,它的作用。WriteHeader


查看完整回答
反对 回复 2022-08-09
  • 1 回答
  • 0 关注
  • 110 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信