2025-02-19 15:17:34 +08:00
|
|
|
package l_request
|
|
|
|
|
|
|
|
import (
|
|
|
|
"sync"
|
|
|
|
)
|
|
|
|
|
|
|
|
type RequestPool struct {
|
|
|
|
pool sync.Pool
|
|
|
|
}
|
|
|
|
|
|
|
|
var RequestPools = &RequestPool{
|
|
|
|
pool: sync.Pool{
|
|
|
|
New: func() interface{} {
|
|
|
|
return new(Request)
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
func (re *RequestPool) Get() *Request {
|
|
|
|
return re.pool.Get().(*Request)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (re *RequestPool) Put(r *Request) {
|
|
|
|
re.pool.Put(r)
|
|
|
|
}
|
|
|
|
|
2025-02-19 15:31:04 +08:00
|
|
|
// 重置对象
|
2025-02-19 15:17:34 +08:00
|
|
|
func (re *RequestPool) Reset(r *Request) {
|
|
|
|
r.Method = ""
|
|
|
|
r.Url = ""
|
|
|
|
r.Params = nil
|
|
|
|
r.Headers = nil
|
|
|
|
r.Cookies = nil
|
|
|
|
r.Data = nil
|
|
|
|
r.Json = nil
|
|
|
|
r.Files = nil
|
|
|
|
r.Raw = ""
|
|
|
|
r.JsonByte = nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func (re *RequestPool) ClearAndPut(r *Request) {
|
|
|
|
re.Reset(r)
|
|
|
|
re.Put(r)
|
|
|
|
}
|