Go http请求检测POST作为GET
我是新来的,事实上是从今天开始的。但却遇到了一个奇怪而令人沮丧的问题。简单地说,当我通过邮递员发出POST请求时,下面的代码将Go http请求检测POST作为GET,go,Go,我是新来的,事实上是从今天开始的。但却遇到了一个奇怪而令人沮丧的问题。简单地说,当我通过邮递员发出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
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请求。在HandleFunc中删除最后一个尾随斜杠
http.HandleFunc("/cart", cartHandler)
而不是
http.HandleFunc("/cart/", cartHandler)
或者,如果您希望您的URL是这样的,请在POSTMAN中用斜杠输入,它应该像预期的那样工作。在您的handlefun中删除最后一个尾随斜杠
http.HandleFunc("/cart", cartHandler)
而不是
http.HandleFunc("/cart/", cartHandler)
或者,如果你希望你的URL是这样的,用斜杠在POSTMAN中输入,它应该像预期的那样工作。谢谢Riscie,curl-X POST也为我工作。不过,POSTMAN也应该可以工作,不确定你是否使用它,但我发现它非常方便。所以我用POSTMAN(chrome扩展)测试了它,它检测到我的帖子是POST,并得到了GET。不确定那里出了什么问题……我想我知道这里出了什么问题。你把完整的网址输入邮递员了吗?包括最后一个斜杠?因为如果我不输入最后一个斜杠,我的帖子也会被发现…就是这样。。。太令人沮丧了,但这不重要,对吧?好的。无论如何,谢谢你弄明白了这一点。谢谢Riscie,curl-X POST也为我工作。不过,POSTMAN也应该可以工作,不确定你是否使用它,但我发现它非常方便。所以我用POSTMAN(chrome扩展)测试了它,它检测到我的帖子是POST,并得到了GET。不确定那里出了什么问题……我想我知道这里出了什么问题。你把完整的网址输入邮递员了吗?包括最后一个斜杠?因为如果我不输入最后一个斜杠,我的帖子也会被发现…就是这样。。。太令人沮丧了,但这不重要,对吧?好的。不管怎样,谢谢你弄明白了。