2 回答

TA貢獻(xiàn)1995條經(jīng)驗 獲得超2個贊
一旦您調(diào)用w.WriteHeader(404)
,標(biāo)題就會連接到電線上。所以你不能再添加它了。最好的方法是緩沖狀態(tài)代碼并將其寫入鏈的末尾。
例如,您可以提供自己的包裝器,http.ResponseWriter
以便重新實現(xiàn)WriteHeader()
以保存狀態(tài)值。然后添加方法Commit()
來實際編寫它。調(diào)用Commit()
最后一個處理程序。當(dāng)然,您必須以某種方式確定最后一個處理程序。

TA貢獻(xiàn)1875條經(jīng)驗 獲得超5個贊
我經(jīng)歷了同樣的默默失敗的行為。但僅在我使用 WritheHeader 設(shè)置 StatusOK 以外的狀態(tài)代碼的處理程序中。我認(rèn)為 CompressHandler 的這一部分出了問題:
if h.Get("Content-Type") == "" {
h.Set("Content-Type", http.DetectContentType(b))
}
在我自己的處理程序中顯式設(shè)置內(nèi)容類型時,這似乎已解決:
w.Header().Set("Content-Type", "text/html; charset=utf-8")
w.WriteHeader(code)
- 2 回答
- 0 關(guān)注
- 195 瀏覽
添加回答
舉報