Qyouu
我最终设法用http.Hijacker.在发出请求并解析请求标头后,我可以从 读取*http.Request.Body,然后劫持连接并同时写入它,如下所示:hj, ok := w.(http.Hijacker)if !ok { http.Error(w, "hijacking not supported", 500) return}conn, bufrw, err := hj.Hijack()if err != nil { http.Error(w, err.Error(), 500) return}defer conn.Close()然后conn是 a net.Conn,它是到客户端的底层 TCP 连接,bufrw是 a *bufio.ReadWriter,并且要在不关闭正文的情况下编写响应,我所要做的就是_, err = bufrw.WriteString("HTTP/1.1 200 OK\n\n")_, err = bufrw.WriteString("this")_, err = bufrw.WriteString("is")_, err = bufrw.WriteString("the")_, err = bufrw.WriteString("response")_, err = bufrw.WriteString("body")然后我不确定这一点,但也许有人可以完成答案,偶尔将缓冲区刷新到连接中是个好主意err := bufrw.Flush()