diff options
| author | diogo464 <[email protected]> | 2024-04-15 12:51:24 +0100 |
|---|---|---|
| committer | diogo464 <[email protected]> | 2024-04-15 12:51:24 +0100 |
| commit | 5b2a84f71c5996399204edb3ebd4ead24f7be0bf (patch) | |
| tree | 9d1a764ab8e4ab7334fb4655dd3099a18ad275c2 /main.go | |
| parent | ff207af453ef24534ea850b3d4436173960e31af (diff) | |
print headers in sorted order
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 15 |
1 files changed, 13 insertions, 2 deletions
| @@ -4,6 +4,7 @@ import ( | |||
| 4 | "fmt" | 4 | "fmt" |
| 5 | "log" | 5 | "log" |
| 6 | "net/http" | 6 | "net/http" |
| 7 | "slices" | ||
| 7 | ) | 8 | ) |
| 8 | 9 | ||
| 9 | func main() { | 10 | func main() { |
| @@ -13,7 +14,9 @@ func main() { | |||
| 13 | fmt.Fprintf(w, "URL: %v\n", r.URL) | 14 | fmt.Fprintf(w, "URL: %v\n", r.URL) |
| 14 | fmt.Fprintf(w, "Proto: %v\n", r.Proto) | 15 | fmt.Fprintf(w, "Proto: %v\n", r.Proto) |
| 15 | fmt.Fprintf(w, "Header:\n") | 16 | fmt.Fprintf(w, "Header:\n") |
| 16 | for key, value := range r.Header { | 17 | |
| 18 | for _, key := range headerSortedKeys(r.Header) { | ||
| 19 | value := r.Header[key] | ||
| 17 | fmt.Fprintf(w, "\t%v: ", key) | 20 | fmt.Fprintf(w, "\t%v: ", key) |
| 18 | for _, v := range value { | 21 | for _, v := range value { |
| 19 | fmt.Fprintf(w, "'%v' ", v) | 22 | fmt.Fprintf(w, "'%v' ", v) |
| @@ -21,9 +24,17 @@ func main() { | |||
| 21 | fmt.Fprintf(w, "\n") | 24 | fmt.Fprintf(w, "\n") |
| 22 | } | 25 | } |
| 23 | fmt.Fprintf(w, "RemoteAddr: %v\n", r.RemoteAddr) | 26 | fmt.Fprintf(w, "RemoteAddr: %v\n", r.RemoteAddr) |
| 24 | w.WriteHeader(http.StatusOK) | ||
| 25 | }) | 27 | }) |
| 26 | if err := http.ListenAndServe(":8000", nil); err != nil { | 28 | if err := http.ListenAndServe(":8000", nil); err != nil { |
| 27 | log.Fatalf("failed to listen and serve: %v", err) | 29 | log.Fatalf("failed to listen and serve: %v", err) |
| 28 | } | 30 | } |
| 29 | } | 31 | } |
| 32 | |||
| 33 | func headerSortedKeys(header http.Header) []string { | ||
| 34 | keys := []string{} | ||
| 35 | for key := range header { | ||
| 36 | keys = append(keys, key) | ||
| 37 | } | ||
| 38 | slices.Sort(keys) | ||
| 39 | return keys | ||
| 40 | } | ||
