1
2
3
4
5 package httptest_test
6
7 import (
8 "fmt"
9 "io"
10 "log"
11 "net/http"
12 "net/http/httptest"
13 )
14
15 func ExampleResponseRecorder() {
16 handler := func(w http.ResponseWriter, r *http.Request) {
17 io.WriteString(w, "<html><body>Hello World!</body></html>")
18 }
19
20 req := httptest.NewRequest("GET", "http://example.com/foo", nil)
21 w := httptest.NewRecorder()
22 handler(w, req)
23
24 resp := w.Result()
25 body, _ := io.ReadAll(resp.Body)
26
27 fmt.Println(resp.StatusCode)
28 fmt.Println(resp.Header.Get("Content-Type"))
29 fmt.Println(string(body))
30
31
32
33
34
35 }
36
37 func ExampleServer() {
38 ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
39 fmt.Fprintln(w, "Hello, client")
40 }))
41 defer ts.Close()
42
43 res, err := http.Get(ts.URL)
44 if err != nil {
45 log.Fatal(err)
46 }
47 greeting, err := io.ReadAll(res.Body)
48 res.Body.Close()
49 if err != nil {
50 log.Fatal(err)
51 }
52
53 fmt.Printf("%s", greeting)
54
55 }
56
57 func ExampleServer_hTTP2() {
58 ts := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
59 fmt.Fprintf(w, "Hello, %s", r.Proto)
60 }))
61 ts.EnableHTTP2 = true
62 ts.StartTLS()
63 defer ts.Close()
64
65 res, err := ts.Client().Get(ts.URL)
66 if err != nil {
67 log.Fatal(err)
68 }
69 greeting, err := io.ReadAll(res.Body)
70 res.Body.Close()
71 if err != nil {
72 log.Fatal(err)
73 }
74 fmt.Printf("%s", greeting)
75
76
77 }
78
79 func ExampleNewTLSServer() {
80 ts := httptest.NewTLSServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
81 fmt.Fprintln(w, "Hello, client")
82 }))
83 defer ts.Close()
84
85 client := ts.Client()
86 res, err := client.Get(ts.URL)
87 if err != nil {
88 log.Fatal(err)
89 }
90
91 greeting, err := io.ReadAll(res.Body)
92 res.Body.Close()
93 if err != nil {
94 log.Fatal(err)
95 }
96
97 fmt.Printf("%s", greeting)
98
99 }
100
View as plain text