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中写入响应后中止的主要内容,如果未能解决你的问题,请参考以下文章

中止请求和超时 跨域的HTTP请求 认证方式 JSONP

IE8上的错误代码12019/12007 ajax请求

代码片段 - Golang 实现简单的 Web 服务器

如何在 Golang 中处理纯文本 HTTP Get 响应?

golang Go HTTP服务器的Logger中间件,它以Apache格式记录每个具有响应状态代码的请求。

如何在Golang中处理纯文本HTTP Get响应?