Skip to content

Instantly share code, notes, and snippets.

@RitterHou
Created May 26, 2018 04:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save RitterHou/b5a72898585358e3385d78ffaa27f530 to your computer and use it in GitHub Desktop.
Save RitterHou/b5a72898585358e3385d78ffaa27f530 to your computer and use it in GitHub Desktop.
package main
import (
"flag"
"io"
"log"
"net/http"
"sort"
"strconv"
)
var port = flag.String("p", "8080", "Set your server's port.")
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) {
request := "Client: " + req.RemoteAddr + "\n\n"
// request += req.Method + " " + req.URL.Path + "\n\n"
header := req.Header
headerList := make([]string, len(header), len(header))
i := 0
for k, v := range header {
headerString := k + ": "
for _, value := range v {
headerString += value
}
headerList[i] = headerString
i++
}
sort.Strings(headerList)
for _, v := range headerList {
request += v + "\n"
}
log.Println("\n" + request)
io.WriteString(w, request)
})
flag.Parse()
if _, err := strconv.Atoi(*port); err != nil {
log.Fatal("Port [" + *port + "] is not a number")
}
log.Println("Listening port " + *port + "...")
err := http.ListenAndServe(":"+*port, nil)
if err != nil {
log.Fatal("ListenAndServe: ", err)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment