aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Resnick <max@ofmax.li>2022-03-08 10:17:14 -0800
committerMax Resnick <max@ofmax.li>2022-03-08 10:17:14 -0800
commitbe86886bc9cfd708a222fb3b6453839298914459 (patch)
tree0cc1344400deff04702875bff2c1e83388d21541
downloadgo-echo-be86886bc9cfd708a222fb3b6453839298914459.tar.gz
init commit
-rw-r--r--README.md3
-rw-r--r--go.mod3
-rw-r--r--main.go27
3 files changed, 33 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..cdb00ce
--- /dev/null
+++ b/README.md
@@ -0,0 +1,3 @@
+# go-echo
+
+A simple golang echo server that returns headers.
diff --git a/go.mod b/go.mod
new file mode 100644
index 0000000..f9a9742
--- /dev/null
+++ b/go.mod
@@ -0,0 +1,3 @@
+module go.ofmax.li/go-echo
+
+go 1.17
diff --git a/main.go b/main.go
new file mode 100644
index 0000000..88f361f
--- /dev/null
+++ b/main.go
@@ -0,0 +1,27 @@
+package main
+
+import (
+ "fmt"
+ "log"
+ "net/http"
+ "time"
+)
+
+func echo(w http.ResponseWriter, req *http.Request) {
+ startTime := time.Now()
+ log.Printf("request recv %v", startTime)
+ fmt.Fprintf(w, "start time: %v\n", startTime)
+ for key, value := range req.Header {
+ for _, v := range value {
+ fmt.Fprintf(w, "%v: %v\n", key, v)
+ }
+ }
+ endTime := time.Now()
+ fmt.Fprintf(w, "end time: %v\n", endTime)
+}
+
+func main() {
+ http.HandleFunc("/", echo)
+ log.Println("...starting echo server...")
+ http.ListenAndServe(":9000", nil)
+}