-2

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?

David Buck
  • 3,752
  • 35
  • 31
  • 35
Bussiere
  • 500
  • 13
  • 60
  • 119
  • 1
    May be you use a nginx or some proxy with authentication/authorization? Your code on python and Go are correct. `print(os.environ("HTTP_PROXY"))` – Maxim Panfilov Nov 26 '18 at 15:33
  • 1
    I checked both your python and go code and there was no problem. check your firewall and network proxy.Also try using postman to check your api – Ehsan.Saradar Nov 26 '18 at 15:37

1 Answers1

1

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")
})
KibGzr
  • 2,053
  • 14
  • 15