学堂学堂学堂公众号手机端

多个响应 Go中的WriteHeader调用

nianxian1年前 (2023-08-01)阅读数 166#科技

的呼叫.WriteHeader()开始通过网络将响应发送到客户端。回应一经进行,便无法退回。您唯一可以做的就是在本地记录错误(让服务器管理员知道),或者只是静默地失败。

“ Error()”函数用于发送完整的HTTP(错误)响应,因此您只能使用它代替发送自己的响应,而不能仅使用它来发送。

解决方法

我的Go服务器正在处理我首先打电话给的请求response.WriteHeader(),以便设置响应的状态代码。之后,我开始将字节写入响应主体。如果我在复制字节时浏览器取消了请求,则会收到错误消息:

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

我的代码检测到此错误,然后调用http.Error()。这response.WriteHeader()再次调用。

这似乎是一个问题,但我不确定。可以避免吗?response.WriteHeader()写入响应正文时发生错误时,如何避免再次调用?

谢谢!

版权声明

本文仅代表作者观点,不代表xx立场。
本文系作者授权xx发表,未经许可,不得转载。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门