ネット眺めているとたぶんみんな間違えてる golang の HTTP Respose Body の閉じ方というエントリが流れてきたけれど、多分みんな間違っていないという話。 元エントリでの話 net/httpのResponseを撮るときに、errorがnilであることを確認するだけでは不十分で、Responseがnilかどうかを確かめたほうがよいというエントリ。すなわち、 resp, err := http.Get("http://golang.org") if err != nil { return err } defer resp.Body.Close() resp, err := http.Get("https://api.ipify.org?format=json") if resp != nil { defer resp.Body.Close() // ← ここで nil じゃな
![たぶんみんな間違っていないgolangのHTTP Respose Bodyの閉じ方 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/cca0ab1ab17ff2cd9f749172817538ff6349a006/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JUUzJTgxJTlGJUUzJTgxJUI2JUUzJTgyJTkzJUUzJTgxJUJGJUUzJTgyJTkzJUUzJTgxJUFBJUU5JTk2JTkzJUU5JTgxJTk1JUUzJTgxJUEzJUUzJTgxJUE2JUUzJTgxJTg0JUUzJTgxJUFBJUUzJTgxJTg0Z29sYW5nJUUzJTgxJUFFSFRUUCUyMFJlc3Bvc2UlMjBCb2R5JUUzJTgxJUFFJUU5JTk2JTg5JUUzJTgxJTk4JUU2JTk2JUI5JnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1lY2JkOGVlNGVkNDA4ZWI4MzNmOGI2OGQ5MjdhNWIxMA%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwdW1pc2FtYSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9NzFkNzJhYzYzOGI5M2Y1NGQ5NzQ1YWY5ZDY3YWM3ZmE%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D0cf2902770718008cee59d1b4c30a912)