glogserver.go (802B)
1 package main 2 3 // glogserver simply takes any request and prints it. 4 // Often useful for debugging stuff. 5 6 import ( 7 "fmt" 8 "io/ioutil" 9 "log" 10 "net/http" 11 "os" 12 ) 13 14 func main() { 15 http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { 16 b, err := ioutil.ReadAll(r.Body) 17 if err != nil { 18 log.Print("error:", err) 19 } 20 defer r.Body.Close() 21 log.Println("Request from", r.RemoteAddr) 22 log.Printf("%v %v | Headers: %v\n", r.Method, r.RequestURI, r.Header) 23 if len(b) > 0 { 24 log.Println("-<body>-----------------------------") 25 log.Println(string(b)) 26 log.Println("------------------------------------") 27 } 28 }) 29 port := ":3000" 30 if len(os.Args) == 2 { 31 port = fmt.Sprintf(":%v", os.Args[1]) 32 } 33 log.Println("Starting server at", port) 34 log.Fatal(http.ListenAndServe(port, nil)) 35 }