瀏覽代碼

Add response body size to writer interface

Matt Newberry 11 年之前
父節點
當前提交
daedc0bc17
共有 1 個文件被更改,包括 9 次插入1 次删除
  1. 9 1
      response_writer.go

+ 9 - 1
response_writer.go

@@ -20,6 +20,7 @@ type (
 		http.CloseNotifier
 
 		Status() int
+		Size() int
 		Written() bool
 		WriteHeaderNow()
 	}
@@ -27,6 +28,7 @@ type (
 	responseWriter struct {
 		http.ResponseWriter
 		status  int
+		size    int
 		written bool
 	}
 )
@@ -55,13 +57,19 @@ func (w *responseWriter) WriteHeaderNow() {
 
 func (w *responseWriter) Write(data []byte) (n int, err error) {
 	w.WriteHeaderNow()
-	return w.ResponseWriter.Write(data)
+	n, err = w.ResponseWriter.Write(data)
+	w.size = n
+	return
 }
 
 func (w *responseWriter) Status() int {
 	return w.status
 }
 
+func (w *responseWriter) Size() int {
+	return w.size
+}
+
 func (w *responseWriter) Written() bool {
 	return w.written
 }