package main import ( "io" "net/http" ) type StringHandle2 struct { message string } func (sh *StringHandle2) ServeHTTP(writer http.ResponseWriter, request *http.Request) { Printfln("\n----------\nMethod: %v Protocol: %v Host: %v URL: %v URL.Host: %v RequestURI: %v", request.Method, request.Proto, request.Host, request.URL.String(), request.URL.Host, request.RequestURI) switch request.URL.Path { case "/favicon.ico": http.NotFound(writer, request) case "/message": writeLen, err := io.WriteString(writer, sh.message) if err != nil { Printfln("ServeHTTP Error: %v", err) return } Printfln("ServeHTTP Wrote %d bytes", writeLen) default: http.Redirect(writer, request, "/message", http.StatusTemporaryRedirect) } Printfln("--------------\n") } func main2() { err := http.ListenAndServe("localhost:5000", &StringHandle2{message: "Hello World!"}) if err != nil { Printfln("ListenAndServe Error: %v", err) return } }