bodyclose
1.0.0
bodyclose هي أداة تحليل ثابتة تتحقق مما إذا كان res.Body مغلقًا بشكل صحيح.
يمكنك الحصول على bodyclose عن طريق go get Command.
$ go get -u github.com/timakin/bodyclose تشغيل bodyclose مع go vet
$ go vet -vettool= $( which bodyclose ) github.com/timakin/go_api/...
# github.com/timakin/go_api
internal/httpclient/httpclient.go:13:13: response body must be closed عندما يكون GO أقل من 1.12 ، ما عليك سوى تشغيل أمر bodyclose مع اسم الحزمة (مسار الاستيراد).
ولكن لا يمكن أن يقبل بعض الخيارات مثل --tags .
$ bodyclose github.com/timakin/go_api/...
~ /go/src/github.com/timakin/api/internal/httpclient/httpclient.go:13:13: response body must be closed يتحقق bodyclose ما إذا كان *net/http.response of http request method method Body.Close() مثل الرمز أدناه.
resp , err := http . Get ( "http://example.com/" ) // Wrong case
if err != nil {
// handle error
}
body , err := ioutil . ReadAll ( resp . Body )هذا الرمز خاطئ. يجب عليك استدعاء resp.body.close عند الانتهاء من قراءة resp.body.
resp , err := http . Get ( "http://example.com/" )
if err != nil {
// handle error
}
defer resp . Body . Close () // OK
body , err := ioutil . ReadAll ( resp . Body )في Godoc of Client.de تم وصف هذه القاعدة بوضوح.
إذا نسيت هذه الجملة ، فلا يمكن لعميل HTTP إعادة استخدام اتصال TCP مستمر إلى الخادم لطلب "Keep-Alive" اللاحق.