Dalam program yang memuat turun fail daripada pelayan dan mengembalikannya kepada pengguna, adalah penting untuk mengekalkan integriti sambungan. Apabila pengguna menghentikan muat turun atau menamatkan sambungan, sambungan GET harus ditamatkan juga. Walau bagaimanapun, seperti yang diperhatikan melalui graf penggunaan, ini tidak berlaku.
Untuk menyelesaikan isu ini, adalah penting untuk menutup Badan permintaan dalam semua keadaan. Begini cara untuk melakukannya:
<code class="go">resp, httpErr := http.Get(url.String()) if httpErr != nil { // Handle error return } // If there's no error, defer the call for closing the body defer resp.Body.Close()</code>
Menunggu penutupan Badan memastikan ia akan dilaksanakan walaupun ralat berlaku. Selain itu, io.Copy menyediakan maklumat tentang kejayaan operasi salinan. Anda boleh menyemak ini dengan menggunakan kod berikut:
<code class="go">written, err := io.Copy(w, resp.Body) if err != nil { // Copy did not succeed }</code>
Dengan menutup sambungan dengan anggun dan menyemak hasil io.Copy, anda boleh memastikan sambungan HTTP ditamatkan apabila pengguna menutup muat turun atau sambungan .
Atas ialah kandungan terperinci Berikut ialah beberapa pilihan tajuk yang sesuai dengan format soal jawab: * **Mengapa Sambungan HTTP My Go Tidak Ditutup Apabila Pengguna Menamatkan Muat Turun?** * **Bagaimana Saya Menutup Sambungan HTTP dengan Anggun. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!