1 回答

TA貢獻(xiàn)1765條經(jīng)驗(yàn) 獲得超5個(gè)贊
你不能。標(biāo)準(zhǔn)庫的 HTTP 服務(wù)器不為這種情況提供任何攔截點(diǎn)或回調(diào)。
在調(diào)用處理程序之前,無效請(qǐng)求將被“終止”。server.go您可以在,方法中看到這conn.serve()一點(diǎn):
? ? 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)
你不能。標(biāo)準(zhǔn)庫的 HTTP 服務(wù)器不為這種情況提供任何攔截點(diǎn)或回調(diào)。
在調(diào)用處理程序之前,無效請(qǐng)求將被“終止”。server.go您可以在,方法中看到這conn.serve()一點(diǎn):
? ? 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 服務(wù)器為您提供了一個(gè)實(shí)現(xiàn)來處理來自使用/遵守HTTP 協(xié)議的客戶端的傳入請(qǐng)求。所有瀏覽器和著名的客戶端都遵循 HTTP 協(xié)議。提供完全可定制的服務(wù)器并不是實(shí)現(xiàn)的目標(biāo)。
- 1 回答
- 0 關(guān)注
- 197 瀏覽
添加回答
舉報(bào)