func Test(c *gin.Context) {
defer c.Request.Body.Close()
b, _ := ioutil.ReadAll(c.Request.Body)
fmt.Println(string(b))
}
@IIInsomnia J'ai la même question. alors devons-nous fermer manuellement le corps?
Vous n'avez pas besoin de fermer le corps des requêtes. gin utilise le package net/http
, net/http
ferme automatiquement.
les gestionnaires de gin sont appelés ici.
https://github.com/golang/go/blob/release-branch.go1.10/src/net/http/server.go#L1830
et finishRequest()
ferme le corps des requêtes.
https://github.com/golang/go/blob/release-branch.go1.10/src/net/http/server.go#L1835
Oui, nous n'avons pas besoin de fermer. J'ai aussi trouvé les commentaires liés.
// Body is the request's body.
//
// For client requests a nil body means the request has no
// body, such as a GET request. The HTTP Client's Transport
// is responsible for calling the Close method.
//
// For server requests the Request Body is always non-nil
// but will return EOF immediately when no body is present.
// The Server will close the request body. The ServeHTTP
// Handler does not need to.
Body io.ReadCloser
plus d'infos : https://github.com/golang/go/blob/master/src/net/http/request.go#L171
Commentaire le plus utile
Vous n'avez pas besoin de fermer le corps des requêtes. gin utilise le package
net/http
,net/http
ferme automatiquement.les gestionnaires de gin sont appelés ici.
https://github.com/golang/go/blob/release-branch.go1.10/src/net/http/server.go#L1830
et
finishRequest()
ferme le corps des requêtes.https://github.com/golang/go/blob/release-branch.go1.10/src/net/http/server.go#L1835