...

Source file src/github.com/klauspost/compress/gzhttp/examples_test.go

Documentation: github.com/klauspost/compress/gzhttp

     1  // Copyright (c) 2021 Klaus Post. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     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  	// Get a client.
    21  	client := http.Client{
    22  		// Wrap the transport:
    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  	// Create a reusable wrapper with custom options.
    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  	// Output:
    72  	// Hello, World, Welcome to the jungle...
    73  	// Hello, Another World.................
    74  }
    75  

View as plain text