出于原因,我尝试使用mux而不是来自net/http的standart HandleFunc来处理HTTP请求。有了http,它就能正常工作,而使用mux就不行了。
import (
_ "github.com/go-sql-driver/mysql"
"github.com/gorilla/mux"
_ "io/ioutil"
"net/http"
)
func init() {
mx := mux.NewRouter()
//create a poll
mx.HandleFunc("/poll", pollCreate)
mx.HandleFunc("/poll/{id}", loadPoll)
mx.HandleFunc("/poll/vote", castVote)
http.ListenAndServe(":8080", mx)
}以下员额请求
localhost:8080/poll在以下方面的成果:
INFO 2015-06-02 16:23:12,219 module.py:718] default: "POST /poll HTTP/1.1" 404 19发布于 2015-06-02 16:49:26
找到解决办法了。
变化
http.ListenAndServe(":8080", mx)至
http.Handle("/", mx)发布于 2020-01-26 18:03:23
您忘了添加默认处理程序。将方法与处理程序保持在一起总是更好。
import (
_ "github.com/go-sql-driver/mysql"
"github.com/gorilla/mux"
_ "io/ioutil"
"net/http"
)
func init() {
mx := mux.NewRouter()
//create a poll
mx.Path("/").HandlerFunc(indexHandler)
mx.PathPrefix("/poll", pollCreate).Method("POST)
mx.PathPrefix("/poll/{id}", loadPoll)
mx.PathPrefix("/poll/vote", castVote)
http.ListenAndServe(":8080", mx)
}https://stackoverflow.com/questions/30601495
复制相似问题