【发布时间】:2017-11-25 03:35:20
【问题描述】:
我正在编写 Go 服务器和客户端,但我不知道如何编写临时响应(状态代码 1xx)。我已经为此搜索了文档和示例,但没有找到任何东西。 我的搜索确实找到了一些关于分块响应的信息,但我认为这不是我所需要的。
我真的只是想发送一个临时响应,让客户端知道请求已被接收(并且一些信息已被验证),而服务器会为最终响应获取更多数据。 该请求将在我的 javascript 客户端上使用 ajax 发出。我想我可以自己弄清楚客户端部分,但我是 Go 新手,我真的可以在编写响应时使用一些帮助。
我没有太多相关代码要展示,因为我完全不知道从哪里开始。但这是我正在尝试构建的非常基本 Go 服务器......如果有帮助的话。
package main
import (
"fmt"
"net/http"
)
func handle(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "existence is pain")
}
func main() {
http.HandleFunc("/", handle)
http.ListenAndServe(":8000", nil)
}
所以这是我的起点,也是我陷入困境的地方。 我希望能够做类似的事情
//validate request
//send interim response
//get more data
//send complete response
是否有允许我发送临时响应的 net/http 函数?
我不应该将http.HandleFunc() 用于这样的事情吗? (我应该使用什么?)
如果有人有这方面的例子或能指出我正确的方向,那会有所帮助。
另外,很抱歉,如果“临时”不是公认的行话。如果这引起了混乱,这里是我的来源:https://msdn.microsoft.com/en-us/library/cc246721.aspx
【问题讨论】: