Commit 4db07463 authored by Brad Fitzpatrick's avatar Brad Fitzpatrick

net/http: add example for setting trailers in an Handler

Change-Id: I6a8bb853a538c80d95589321d3226784bc017eef
Reviewed-on: https://go-review.googlesource.com/12327Reviewed-by: 's avatarAndrew Gerrand <adg@golang.org>
parent 1942e381
...@@ -6,6 +6,7 @@ package http_test ...@@ -6,6 +6,7 @@ package http_test
import ( import (
"fmt" "fmt"
"io"
"io/ioutil" "io/ioutil"
"log" "log"
"net/http" "net/http"
...@@ -86,3 +87,25 @@ func ExampleServeMux_Handle() { ...@@ -86,3 +87,25 @@ func ExampleServeMux_Handle() {
fmt.Fprintf(w, "Welcome to the home page!") fmt.Fprintf(w, "Welcome to the home page!")
}) })
} }
// HTTP Trailers are a set of key/value pairs like headers that come
// after the HTTP response, instead of before.
func ExampleResponseWriter_trailers() {
mux := http.NewServeMux()
mux.HandleFunc("/sendstrailers", func(w http.ResponseWriter, req *http.Request) {
// Before any call to WriteHeader or Write, declare
// the trailers you will set during the HTTP
// response. These three headers are actually sent in
// the trailer.
w.Header().Set("Trailer", "AtEnd1, AtEnd2")
w.Header().Add("Trailer", "AtEnd3")
w.Header().Set("Content-Type", "text/plain; charset=utf-8") // normal header
w.WriteHeader(http.StatusOK)
w.Header().Set("AtEnd1", "value 1")
io.WriteString(w, "This HTTP response has both headers before this text and trailers at the end.\n")
w.Header().Set("AtEnd2", "value 2")
w.Header().Set("AtEnd3", "value 3") // These will appear as trailers.
})
}
...@@ -60,7 +60,7 @@ type ResponseWriter interface { ...@@ -60,7 +60,7 @@ type ResponseWriter interface {
// WriteHeader. Changing the header after a call to // WriteHeader. Changing the header after a call to
// WriteHeader (or Write) has no effect unless the modified // WriteHeader (or Write) has no effect unless the modified
// headers were declared as trailers by setting the // headers were declared as trailers by setting the
// "Trailer" header before the call to WriteHeader. // "Trailer" header before the call to WriteHeader (see example).
// To suppress implicit response headers, set their value to nil. // To suppress implicit response headers, set their value to nil.
Header() Header Header() Header
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment