mirror of https://github.com/gofiber/fiber.git
👷 Remove custom request and export agent request
parent
a2eab0d754
commit
bc9651d58b
51
client.go
51
client.go
|
@ -141,6 +141,7 @@ func (c *Client) createAgent(method, url string) *Agent {
|
|||
}
|
||||
|
||||
// Agent is an object storing all request data for client.
|
||||
// Agent instance MUST NOT be used from concurrently running goroutines.
|
||||
type Agent struct {
|
||||
// Name is used in User-Agent request header.
|
||||
Name string
|
||||
|
@ -152,7 +153,6 @@ type Agent struct {
|
|||
*fasthttp.HostClient
|
||||
|
||||
req *Request
|
||||
customReq *Request
|
||||
args *Args
|
||||
timeout time.Duration
|
||||
errs []error
|
||||
|
@ -174,12 +174,7 @@ func (a *Agent) Parse() error {
|
|||
}
|
||||
a.parsed = true
|
||||
|
||||
req := a.req
|
||||
if a.customReq != nil {
|
||||
req = a.customReq
|
||||
}
|
||||
|
||||
uri := req.URI()
|
||||
uri := a.req.URI()
|
||||
|
||||
isTLS := false
|
||||
scheme := uri.Scheme()
|
||||
|
@ -465,13 +460,6 @@ func (a *Agent) BodyStream(bodyStream io.Reader, bodySize int) *Agent {
|
|||
return a
|
||||
}
|
||||
|
||||
// Request sets custom request for createAgent.
|
||||
func (a *Agent) Request(req *Request) *Agent {
|
||||
a.customReq = req
|
||||
|
||||
return a
|
||||
}
|
||||
|
||||
// JSON sends a JSON request.
|
||||
func (a *Agent) JSON(v interface{}) *Agent {
|
||||
if a.jsonEncoder == nil {
|
||||
|
@ -703,6 +691,11 @@ func (a *Agent) JSONDecoder(jsonDecoder utils.JSONUnmarshal) *Agent {
|
|||
return a
|
||||
}
|
||||
|
||||
// Request returns Agent request instance.
|
||||
func (a *Agent) Request() *Request {
|
||||
return a.req
|
||||
}
|
||||
|
||||
/************************** End Agent Setting **************************/
|
||||
|
||||
// Bytes returns the status code, bytes body and errors of url.
|
||||
|
@ -717,9 +710,6 @@ func (a *Agent) Bytes(customResp ...*Response) (code int, body []byte, errs []er
|
|||
}
|
||||
|
||||
req := a.req
|
||||
if a.customReq != nil {
|
||||
req = a.customReq
|
||||
}
|
||||
|
||||
var (
|
||||
resp *Response
|
||||
|
@ -816,7 +806,6 @@ func (a *Agent) release() {
|
|||
func (a *Agent) reset() {
|
||||
a.HostClient = nil
|
||||
a.req.Reset()
|
||||
a.customReq = nil
|
||||
a.timeout = 0
|
||||
a.args = nil
|
||||
a.errs = a.errs[:0]
|
||||
|
@ -878,7 +867,7 @@ func ReleaseClient(c *Client) {
|
|||
func AcquireAgent() *Agent {
|
||||
v := agentPool.Get()
|
||||
if v == nil {
|
||||
return &Agent{req: fasthttp.AcquireRequest()}
|
||||
return &Agent{req: &Request{}}
|
||||
}
|
||||
return v.(*Agent)
|
||||
}
|
||||
|
@ -892,30 +881,6 @@ func ReleaseAgent(a *Agent) {
|
|||
agentPool.Put(a)
|
||||
}
|
||||
|
||||
// AcquireRequest returns an empty Request instance from request pool.
|
||||
//
|
||||
// The returned Request instance may be passed to ReleaseRequest when it is
|
||||
// no longer needed. This allows Request recycling, reduces GC pressure
|
||||
// and usually improves performance.
|
||||
// Copy from fasthttp
|
||||
func AcquireRequest() *Request {
|
||||
v := requestPool.Get()
|
||||
if v == nil {
|
||||
return &Request{}
|
||||
}
|
||||
return v.(*Request)
|
||||
}
|
||||
|
||||
// ReleaseRequest returns req acquired via AcquireRequest to request pool.
|
||||
//
|
||||
// It is forbidden accessing req and/or its' members after returning
|
||||
// it to request pool.
|
||||
// Copy from fasthttp
|
||||
func ReleaseRequest(req *Request) {
|
||||
req.Reset()
|
||||
requestPool.Put(req)
|
||||
}
|
||||
|
||||
// AcquireResponse returns an empty Response instance from response pool.
|
||||
//
|
||||
// The returned Response instance may be passed to ReleaseResponse when it is
|
||||
|
|
|
@ -480,7 +480,7 @@ func Test_Client_Agent_BodyStream(t *testing.T) {
|
|||
testAgent(t, handler, wrapAgent, "body stream")
|
||||
}
|
||||
|
||||
func Test_Client_Agent_Custom_Request_And_Response(t *testing.T) {
|
||||
func Test_Client_Agent_Custom_Response(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
ln := fasthttputil.NewInmemoryListener()
|
||||
|
@ -495,12 +495,11 @@ func Test_Client_Agent_Custom_Request_And_Response(t *testing.T) {
|
|||
|
||||
for i := 0; i < 5; i++ {
|
||||
a := AcquireAgent()
|
||||
req := AcquireRequest()
|
||||
resp := AcquireResponse()
|
||||
|
||||
req := a.Request()
|
||||
req.Header.SetMethod(MethodGet)
|
||||
req.SetRequestURI("http://example.com")
|
||||
a.Request(req)
|
||||
|
||||
utils.AssertEqual(t, nil, a.Parse())
|
||||
|
||||
|
@ -513,7 +512,6 @@ func Test_Client_Agent_Custom_Request_And_Response(t *testing.T) {
|
|||
utils.AssertEqual(t, "custom", string(resp.Body()))
|
||||
utils.AssertEqual(t, 0, len(errs))
|
||||
|
||||
ReleaseRequest(req)
|
||||
ReleaseResponse(resp)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue