1 回答
TA贡献1765条经验 获得超5个赞
你不能。标准库的 HTTP 服务器不为这种情况提供任何拦截点或回调。
在调用处理程序之前,无效请求将被“终止”。server.go您可以在,方法中看到这conn.serve()一点:
w, err := c.readRequest(ctx)
// ...
if err != nil {
switch {
// ...
default:
publicErr := "400 Bad Request"
if v, ok := err.(badRequestError); ok {
publicErr = publicErr + ": " + string(v)
}
fmt.Fprintf(c.rwc, "HTTP/1.1 "+publicErr+errorHeaders+publicErr)
return
}
}
// ...
serverHandler{c.server}.ServeHTTP(w, w.req)
你不能。标准库的 HTTP 服务器不为这种情况提供任何拦截点或回调。
在调用处理程序之前,无效请求将被“终止”。server.go您可以在,方法中看到这conn.serve()一点:
w, err := c.readRequest(ctx)
// ...
if err != nil {
switch {
// ...
default:
publicErr := "400 Bad Request"
if v, ok := err.(badRequestError); ok {
publicErr = publicErr + ": " + string(v)
}
fmt.Fprintf(c.rwc, "HTTP/1.1 "+publicErr+errorHeaders+publicErr)
return
}
}
// ...
serverHandler{c.server}.ServeHTTP(w, w.req)
Go 的 HTTP 服务器为您提供了一个实现来处理来自使用/遵守HTTP 协议的客户端的传入请求。所有浏览器和著名的客户端都遵循 HTTP 协议。提供完全可定制的服务器并不是实现的目标。
- 1 回答
- 0 关注
- 131 浏览
添加回答
举报