请用go语言和restful接口实现http心跳检测
以下是一个简单的示例,演示如何使用Go语言和RESTful API实现HTTP心跳检测。
首先,我们需要导入必要的包:
package main
import (
"fmt"
"log"
"net/http"
"time"
)
然后,我们可以定义一个HTTP处理程序来处理心跳检测请求:
func heartbeatHandler(w http.ResponseWriter, r *http.Request) {
if r.Method != "GET" {
http.Error(w, "Invalid request method.", http.StatusMethodNotAllowed)
return
}
// 返回一个简单的响应
w.WriteHeader(http.StatusOK)
fmt.Fprintf(w, "Heartbeat OK\n")
}
接下来,我们可以使用Go的标准库创建一个HTTP服务器并将其绑定到指定的端口:
func main() {
// 创建路由器
router := http.NewServeMux()
// 定义心跳检测处理程序
router.HandleFunc("/heartbeat", heartbeatHandler)
// 创建HTTP服务器
srv := &http.Server{
Addr: ":8080",
Handler: router,
ReadTimeout: 10 * time.Second,
WriteTimeout: 10 * time.Second,
}
// 启动HTTP服务器
log.Printf("Starting HTTP server on port %s\n", srv.Addr)
if err := srv.ListenAndServe(); err != nil {
log.Fatal(err)
}
}
现在,我们可以使用任何HTTP客户端向我们的服务器发送GET请求并在响应中检查是否存在“Heartbeat OK”消息。
完整的代码如下:
package main
import (
"fmt"
"log"
"net/http"
"time"
)
func heartbeatHandler(w http.ResponseWriter, r *http.Request) {
if r.Method != "GET" {
http.Error(w, "Invalid request method.", http.StatusMethodNotAllowed)
return
}
// 返回一个简单的响应
w.WriteHeader(http.StatusOK)
fmt.Fprintf(w, "Heartbeat OK\n")
}
func main() {
// 创建路由器
router := http.NewServeMux()
// 定义心跳检测处理程序
router.HandleFunc("/heartbeat", heartbeatHandler)
// 创建HTTP服务器
srv := &http.Server{
Addr: ":8080",
Handler: router,
ReadTimeout: 10 * time.Second,
WriteTimeout: 10 * time.Second,
}
// 启动HTTP服务器
log.Printf("Starting HTTP server on port %s\n", srv.Addr)
if err := srv.ListenAndServe(); err != nil {
log.Fatal(err)
}
}
原文地址: https://www.cveoy.top/t/topic/zVw 著作权归作者所有。请勿转载和采集!