如何在一个请求后停止HTTP服务功能

时间:2018-05-19 19:40:40

标签: http go server request

要使用第三方服务对用户进行身份验证,我需要监听并等待本地端口,以便我获得该服务的令牌。

如何在一次请求后退出服务器?

据我所知,只有listenAndServer可以永久使用,但只能使用一个请求

1 个答案:

答案 0 :(得分:0)

感谢@mkopriva,我能够做到。

实际上非常简单,只需手动创建服务器对象,然后在句柄函数中调用s.Close()

s := &http.Server{
    Addr: "localhost:8085",
}
http.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) {
    //do sth
    s.Close()
})
s.ListenAndServe()
//do sth else