2016-02-19 12 views
2

我在阅读由Sau Sheong Chang编写的Go Web Programming。这里,是从请求体中读取数据的示例代码:转到:http.Request中的读取方法

import (
    "fmt" 
    "net/http" 
) 

func bodyfunc(w http.ResponseWriter, r *http.Request) { 
    len := r.ContentLength 
    body := make([]byte, len) 
    r.Body.Read(body) 
    fmt.Fprintln(w, string(body)) 
} 

func main() { 
    server := http.Server{ 
     Addr: "127.0.0.1:8080", 
    } 
    http.HandleFunc("/body", bodyfunc) 
    server.ListenAndServe() 
} 

根据定义,在Request结构中的Body场实际上是一个 io.ReadCloser接口。我的问题是:此接口中的Read方法只是声明但未实现。同时代码运行良好。 Read方法的实现必须在某处完成。它在哪里?

+2

此外,在每个接口中,每个方法只是声明,但未实现。 –

+0

我会从https://golang.org/src/net/http/request.go开始搜索 –

回答