I am trying to create a GoLang http.HandleFunc() that will listen for post requests and parse a json file. The Handler seems to fail as it starts and returns an error:
2017/01/24 13:35:08 listen tcp :8080: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.
I am assuming that it is throwing a fatal error.
Below is my function:
http.HandleFunc("/", func(w http.ResponseWriter, request *http.Request) {
//debug
fmt.Fprintf(w, "Hello, %q", html.EscapeString(request.URL.Path))
var m Message
if request.Body == nil {
http.Error(w, "Please send a request body", 400)
return
}
err := json.NewDecoder(request.Body).Decode(&m)
if err != nil {
http.Error(w, err.Error(), 400)
return
}
})
log.Fatal(http.ListenAndServe(":8080", nil))
How can I get this Handler to work and not get the error?
defer res.Body.Close()call "in the middle on nowhere"?8080?