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[] &{}