我是Go的新手,从今天开始。但是遇到了一个奇怪且令人沮丧的问题。简而言之,当我通过POSTMAN发出POST请求时,以下代码将r.Method
打印为GET。
package main
import (
"fmt"
"net/http"
"routes"
)
func cartHandler(w http.ResponseWriter, r *http.Request) {
fmt.Printf(r.Method);
if r.Method == "GET" {
cart.GetHandler(w,r)
} else if r.Method == "POST" {
cart.PostHandler(w,r)
}
//fmt.Fprintf(w, "Hi there, I love %s!", r.Method)
}
func main() {
http.HandleFunc("/cart/", cartHandler)
http.ListenAndServe(":8010", nil)
}
正在进行的请求很好,因为nodejs中的类似代码将其检测为POST请求。
答案 0 :(得分:3)
在HandleFunc中删除最后一个尾部斜杠
http.HandleFunc("/cart", cartHandler)
而不是
http.HandleFunc("/cart/", cartHandler)
或者如果您想要这样的URL,请在POSTMAN中使用斜杠输入它,它应该像预期的那样工作。