snippets

More or less useful code snippets
Log | Files | Refs

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 }