Я пытаюсь создать GoLang http.HandleFunc(), который будет прослушивать почтовые запросы и анализировать json-файл. Обработчик, кажется, не в состоянии, как он начинает и возвращает ошибку:Как получить http.HandleFunc() GoLang для работы без ошибок?
2017/01/24 13:35:08 listen tcp :8080: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.
Я предполагаю, что это бросает фатальную ошибку.
Ниже моя функция:
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))
Как я могу получить этот обработчик, чтобы работать, а не получить ошибку?
Ваш фрагмент кода не имеет никакого смысла; почему существует «defer res.Body.Close()« вызов »посередине в никуда»? –
Эта ошибка указывает, что уже есть другой процесс или поток, прослушивающий порт. Возможно, у вас есть еще одна программа на вашем компьютере, работающая с портом '8080'? –
@TimCooper Я не уверен, куда он должен идти? Какие-либо предложения? – antman1p