You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go语言中是否有内置方法直接返回HTTP 200状态码及空响应体?

完全可以用匿名内联函数实现,无需单独定义处理函数,符合Go语言的常见编码风格。

最简实现(无日志场景)

你只需要把路由注册的代码替换为下面一行即可,效果和你现有实现完全一致:

r.HandleFunc("/check", func(w http.ResponseWriter, r *http.Request) {}).Methods(http.MethodGet)

说明:Go标准库net/http的处理函数如果没有显式调用w.WriteHeader设置状态码,默认会返回200 OK,处理函数没有写入任何响应内容时,自然返回空响应体。

保留错误日志的实现

如果你需要保留原有实现中的写入空字节、错误日志逻辑,也可以把完整逻辑内联到匿名函数中,依旧可以写成一行:

r.HandleFunc("/check", func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusOK); if _, err := w.Write([]byte{}); err != nil { log.Error().Msgf("cannot send 200 answer → %v", err) } }).Methods(http.MethodGet)

完整示例代码

package main

import (
    "net/http"

    "github.com/gorilla/mux"
    "github.com/rs/zerolog/log"
)

func main() {
    r := mux.NewRouter()
    r.Use(mux.CORSMethodMiddleware(r))
    // 一行实现check接口,无需额外定义处理函数
    r.HandleFunc("/check", func(w http.ResponseWriter, r *http.Request) {}).Methods(http.MethodGet)
    err := http.ListenAndServe("0.0.0.0:9991", r)
    if err != nil {
        log.Panic().Msgf("cannot start web server: %v", err)
    }
}

内容的提问来源于stack exchange,提问作者WoJ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 06:15:02