...
1
2
3
4
5 package gzhttp_test
6
7 import (
8 "fmt"
9 "io"
10 "io/ioutil"
11 "log"
12 "net/http"
13 "net/http/httptest"
14
15 "github.com/klauspost/compress/gzhttp"
16 "github.com/klauspost/compress/gzip"
17 )
18
19 func ExampleTransport() {
20
21 client := http.Client{
22
23 Transport: gzhttp.Transport(http.DefaultTransport),
24 }
25
26 resp, err := client.Get("https://google.com")
27 if err != nil {
28 fmt.Println(err)
29 return
30 }
31 defer resp.Body.Close()
32
33 body, _ := ioutil.ReadAll(resp.Body)
34 fmt.Println("body:", string(body))
35 }
36
37 func ExampleNewWrapper() {
38 handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
39 w.Header().Set("Content-Type", "text/plain")
40 io.WriteString(w, "Hello, World, Welcome to the jungle...")
41 })
42 handler2 := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
43 io.WriteString(w, "Hello, Another World.................")
44 })
45
46
47 wrapper, err := gzhttp.NewWrapper(gzhttp.MinSize(20), gzhttp.CompressionLevel(gzip.BestSpeed))
48 if err != nil {
49 log.Fatalln(err)
50 }
51 server := http.NewServeMux()
52 server.Handle("/a", wrapper(handler))
53 server.Handle("/b", wrapper(handler2))
54
55 test := httptest.NewServer(server)
56 defer test.Close()
57
58 resp, err := http.Get(test.URL + "/a")
59 if err != nil {
60 log.Fatalln(err)
61 }
62 content, _ := ioutil.ReadAll(resp.Body)
63 fmt.Println(string(content))
64
65 resp, err = http.Get(test.URL + "/b")
66 if err != nil {
67 log.Fatalln(err)
68 }
69 content, _ = ioutil.ReadAll(resp.Body)
70 fmt.Println(string(content))
71
72
73
74 }
75
View as plain text