去http请求检测POST为GET

时间:2016-01-29 12:46:24

标签: go

我是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请求。

1 个答案:

答案 0 :(得分:3)

在HandleFunc中删除最后一个尾部斜杠

    http.HandleFunc("/cart", cartHandler)

而不是

    http.HandleFunc("/cart/", cartHandler)

或者如果您想要这样的URL,请在POSTMAN中使用斜杠输入它,它应该像预期的那样工作。