簡體   English   中英

Go中有多個response.WriteHeader調用

[英]Multiple response.WriteHeader calls in Go

我的Go服務器處理請求我首先調用response.WriteHeader()以設置我的響應的狀態代碼。 之后,我開始將字節寫入響應主體。 如果瀏覽器在復制字節時取消請求,則會收到錯誤消息:

write tcp [::1]:52319: broken pipe

我的代碼檢測到此錯誤,然后調用http.Error() 這再次調用response.WriteHeader()

這似乎是一個問題,但我不確定。 這可以避免嗎? 在寫入響應主體時發生錯誤時,如何避免再次調用response.WriteHeader()

謝謝!

.WriteHeader()的調用開始通過網絡向客戶端發送響應。 一旦響應即將到來,就無法回復。 您唯一能做的就是在本地記錄錯誤(讓服務器管理員知道)或者可能只是默默地失敗。

'Error()'函數用於發送完整的HTTP(錯誤)響應,因此您只能使用它來替換發送您自己的響應,而不是除此之外。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM