HTTP请求在Golang中写入响应后中止
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP请求在Golang中写入响应后中止相关的知识,希望对你有一定的参考价值。
我在Go中有一个服务器来处理文件上传。这是一个遗留代码,因此我无法太多涉及。
如果服务器在请求标头中检测到错误,则服务器应中断上载,并应向客户端返回一条消息,指出出了问题。
处理程序函数类似于以下内容:
func(w http.ResponseWriter, r *http.Request) {
// Check the header. Could be more than one.
if r.Header.Get("key") == "not as expected" {
w.WriteHeader(500)
w.Write("key is wrong")
return
}
//handle the file upload
}
标题检查只是显示问题的一个示例
服务器在写入后关闭连接并从函数返回,即使请求未完成(接收到文件)。
在客户端(Java)上,当我使用错误值key
和要作为主体上载的文件发出请求时,出现了管道异常,并且无法正确处理响应。实际上,我无法触摸客户端代码。
服务器端有办法在关闭连接之前等待请求结束吗?
答案
None以上是关于HTTP请求在Golang中写入响应后中止的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Golang 中处理纯文本 HTTP Get 响应?