#go
#Вперед
Вопрос:
package main
import (
"io"
"net/http"
)
func main() {
http.HandleFunc("/user/login", func(writer http.ResponseWriter, request *http.Request) {
io.WriteString(writer,"Hello world")
})
//启动一个服务器
http.ListenAndServe("8080",nil)
}
я хочу прослушать порт 8080, но когда я запускаю этот код, он автоматически завершается
Комментарии:
1.
http.ListenAndServe("8080",nil)
возвращает ошибку. Попробуйте распечатать его, чтобы лучше понять, почему он терпит неудачу, напримерfmt.Println(http.ListenAndServe("8080",nil))
, будет печататьnil
, если он работает нормально, иначе он напечатает фактическую ошибку.
Ответ №1:
Посмотрите это:
Правильный синтаксис для ListenAndServe
ListenAndServe(":8080", nil)
Если вы добавите журнал с log.Fatal(http.ListenAndServe("8080", nil))
помощью, вы можете увидеть ошибку:
2020/11/12 14:44:11 прослушивание tcp: адрес 8080: отсутствует порт в адресе
Ответ №2:
Ваш адрес порта прослушивания может иметь неправильный формат. приведенный ниже фрагмент работает
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", Helloworld)
http.ListenAndServe(":8080", nil)
}
func Helloworld(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, %s!", r.URL.Path[1:])
}