github.com/traefik/yaegi@v0.15.1/_test/cli7.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  }
    17  
    18  var obj = map[string]interface{}{}
    19  
    20  func (m *mw1) ServeHTTP(rw http.ResponseWriter, rq *http.Request) {
    21  	t := &T{
    22  		ResponseWriter: rw,
    23  	}
    24  	x := t.Header()
    25  	i := obj["m1"].(*mw1)
    26  	fmt.Fprint(rw, "Welcome to my website!", x, i)
    27  }
    28  
    29  func main() {
    30  	m1 := &mw1{}
    31  
    32  	obj["m1"] = m1
    33  
    34  	mux := http.NewServeMux()
    35  	mux.HandleFunc("/", m1.ServeHTTP)
    36  
    37  	server := httptest.NewServer(mux)
    38  	defer server.Close()
    39  
    40  	client(server.URL)
    41  }
    42  
    43  func client(uri string) {
    44  	resp, err := http.Get(uri)
    45  	if err != nil {
    46  		log.Fatal(err)
    47  	}
    48  	body, err := io.ReadAll(resp.Body)
    49  	if err != nil {
    50  		log.Fatal(err)
    51  	}
    52  	fmt.Println(string(body))
    53  }
    54  
    55  // Output:
    56  // Welcome to my website!map[] &{}