如何在gin和python之间通信

Here is my Go gin code:

package main

import (
    "fmt"

    "github.com/gin-gonic/gin"
)

type Data struct {
    Test string `json:"test"`
}

func getData(c *gin.Context) {
    var data Data
    err := c.BindJSON(&data)
    if err != nil {
        panic(err)
    }
    fmt.Println(data)
    c.JSON(200, gin.H{
        "message": "pong",
    })
}

func main() {
    r := gin.Default()
    r.POST("/test", getData)
    r.Run() // listen and serve on 0.0.0.0:8080
}

and my python code:

import requests
r = requests.post("http://127.0.0.1:8080/test",json={"test":"ok"})
print(r)

But when I execute my python script I have a 403 error:

<Response [403]>

The panic (err) display nothing.

Any idea why I get this error?

Your go and python code is valid. I check in my side don't have any error occur. Try setup GET router and check it with browser.

r.GET("/ping", func(c *gin.Context) {
    c.String(http.StatusOK, "OK")
})