Respuesta de escritura http de Golang sin esperar a terminar
Estoy creando una aplicación que crea un archivo pdf y lo devuelve al cliente cada vez que recibe una solicitud.
Dado que algunos de estos archivos pdf pueden tardar un tiempo en generarse, me gustaría enviar periódicamente algún tipo de actualización de estado al cliente mientras se está ejecutando.
Cuando termine de construir el archivo pdf, también debe devolverse al cliente.
Algo parecido a:
func buildReport(writer http.ResponseWriter, request *http.Request){
//build pdf build pdf file
for { //for example purposes only
writer.Write([]byte("building. Please wait."))
}
pdf.OutputFileAndClose("report.pdf")
//set header to pdf so that the client knows it's a PDF
writer.Header().Set("Content-Type", "application/pdf")
http.ServeFile(writer, request, "report.pdf")
}
func main() {
http.HandleFunc("/", buildReport)
http.ListenAndServe(":8081", nil)
}
Es posible que configurar el encabezado no funcione, ya que el escritor solo puede tener un encabezado.