我正在尝试创建两个具有相同请求正文的HTTP请求。不幸的是,第二个请求发送了一个空的正文。
w := httptest.NewRecorder()
w2 := httptest.NewRecorder()
pd := &postData{
Data: 5,
}
b := new(bytes.Buffer)
json.NewEncoder(b).Encode(pd)
req, _ := http.NewRequest("PUT", "/v1/jobs/echo", b)
server.ServeHTTP(w, req)
req, _ = http.NewRequest("PUT", "/v1/jobs/echo", b)
server.ServeHTTP(w2, req)
阅读bytes.Buffer的文档和源代码,看起来没有办法将缓冲区重置为0 - 有一个Reset方法,但这也会清除缓冲区的内部状态。
在Go中是否有一种“重播”任何Reader的方法?包括bytes.Buffer或其他Reader。