Go http请求检测POST作为GET

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

我是新来的,事实上是从今天开始的。但却遇到了一个奇怪而令人沮丧的问题。简单地说,当我通过邮递员发出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请求。

在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。不确定那里出了什么问题……我想我知道这里出了什么问题。你把完整的网址输入邮递员了吗?包括最后一个斜杠?因为如果我不输入最后一个斜杠,我的帖子也会被发现…就是这样。。。太令人沮丧了,但这不重要,对吧?好的。不管怎样,谢谢你弄明白了。