summaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'main.go')
-rw-r--r--main.go15
1 files 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 (
4 "fmt" 4 "fmt"
5 "log" 5 "log"
6 "net/http" 6 "net/http"
7 "slices"
7) 8)
8 9
9func main() { 10func 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
33func 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}