one-api/common/http.go

23 lines
385 B
Go

package common
import (
"bytes"
"io"
"net/http"
)
func CloneRequest(old *http.Request) *http.Request {
req := old.Clone(old.Context())
oldBody, err := io.ReadAll(old.Body)
if err != nil {
return nil
}
err = old.Body.Close()
if err != nil {
return nil
}
old.Body = io.NopCloser(bytes.NewBuffer(oldBody))
req.Body = io.NopCloser(bytes.NewBuffer(oldBody))
return req
}