首頁 > 後端開發 > Golang > 主體

以下是一些適合問答格式的標題選項: * **為什麼當使用者終止下載時我的 Go HTTP 連線沒有關閉? * **如何優雅地關閉 HTTP 連接

Barbara Streisand
發布: 2024-10-28 12:13:02
原創
948 人瀏覽過

Here are a few title options that fit the question-and-answer format:

* **Why Is My Go HTTP Connection Not Closing When the User Terminates the Download?**
* **How Do I Gracefully Close HTTP Connections in Go When Downloads Are Interrupted?**
* **Ensurin

排查 Go 中的 HTTP 連線關閉問題

在從伺服器下載檔案並將其傳回給使用者的程式中,保持連線完整性至關重要。當使用者停止下載或終止連線時,GET 連線也應該終止。但是,透過使用情況圖表觀察到,這種情況並未發生。

關閉 HTTP 連線

要解決此問題,必須在所有情況下關閉請求正文。操作方法如下:

<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>
登入後複製

延遲 Body 的關閉可以確保即使發生錯誤它也會被執行。此外,io.Copy 還提供有關複製操作成功的資訊。您可以使用以下程式碼來檢查這一點:

<code class="go">written, err := io.Copy(w, resp.Body)
if err != nil {
    // Copy did not succeed
}</code>
登入後複製

透過優雅地關閉連線並檢查 io.Copy 的結果,您可以確保在使用者關閉下載或連線時終止 HTTP 連線.

以上是以下是一些適合問答格式的標題選項: * **為什麼當使用者終止下載時我的 Go HTTP 連線沒有關閉? * **如何優雅地關閉 HTTP 連接的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!