github.com/traefik/yaegi@v0.15.1/_test/cli6.go (about)

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  	"io"
     6  	"log"
     7  	"net/http"
     8  	"net/http/httptest"
     9  )
    10  
    11  type T struct {
    12  	http.ResponseWriter
    13  }
    14  
    15  type mw1 struct {
    16  	next http.Handler
    17  }
    18  
    19  func (m *mw1) ServeHTTP(rw http.ResponseWriter, rq *http.Request) {
    20  	t := &T{
    21  		ResponseWriter: rw,
    22  	}
    23  	x := t.Header()
    24  	fmt.Fprint(rw, "Welcome to my website!", x)
    25  }
    26  
    27  func main() {
    28  	m1 := &mw1{}
    29  
    30  	mux := http.NewServeMux()
    31  	mux.HandleFunc("/", m1.ServeHTTP)
    32  
    33  	server := httptest.NewServer(mux)
    34  	defer server.Close()
    35  
    36  	client(server.URL)
    37  }
    38  
    39  func client(uri string) {
    40  	resp, err := http.Get(uri)
    41  	if err != nil {
    42  		log.Fatal(err)
    43  	}
    44  	body, err := io.ReadAll(resp.Body)
    45  	if err != nil {
    46  		log.Fatal(err)
    47  	}
    48  	fmt.Println(string(body))
    49  }
    50  
    51  // Output:
    52  // Welcome to my website!map[]