From 5b2a84f71c5996399204edb3ebd4ead24f7be0bf Mon Sep 17 00:00:00 2001 From: diogo464 Date: Mon, 15 Apr 2024 12:51:24 +0100 Subject: print headers in sorted order --- main.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/main.go b/main.go index e37cc2e..ed2b871 100644 --- a/main.go +++ b/main.go @@ -4,6 +4,7 @@ import ( "fmt" "log" "net/http" + "slices" ) func main() { @@ -13,7 +14,9 @@ func main() { fmt.Fprintf(w, "URL: %v\n", r.URL) fmt.Fprintf(w, "Proto: %v\n", r.Proto) fmt.Fprintf(w, "Header:\n") - for key, value := range r.Header { + + for _, key := range headerSortedKeys(r.Header) { + value := r.Header[key] fmt.Fprintf(w, "\t%v: ", key) for _, v := range value { fmt.Fprintf(w, "'%v' ", v) @@ -21,9 +24,17 @@ func main() { fmt.Fprintf(w, "\n") } fmt.Fprintf(w, "RemoteAddr: %v\n", r.RemoteAddr) - w.WriteHeader(http.StatusOK) }) if err := http.ListenAndServe(":8000", nil); err != nil { log.Fatalf("failed to listen and serve: %v", err) } } + +func headerSortedKeys(header http.Header) []string { + keys := []string{} + for key := range header { + keys = append(keys, key) + } + slices.Sort(keys) + return keys +} -- cgit