How do I convert post request body to query string format on go fasthttp/gofiber?

2.5k Views Asked by At

This is what I'm doing with Get requests

app.Get("/", func(c *fiber.Ctx) error {


    fmt.Println(string(c.Request().URI().QueryString()))
    
    return c.SendString("Ok!")
  })

I'm getting the following output

hello=12&sdsdf=324

I want to do the same for POST request. I tried string(c.Body()) but I got output like the following

----------------------------948304762891896410291124
Content-Disposition: form-data; name="hello"

ge
----------------------------948304762891896410291124
Content-Disposition: form-data; name="ge"

dsfs
----------------------------948304762891896410291124--

How can I get a query string format out put for POST. The post parameters can be anything and any number.

1

There are 1 best solutions below

2
On

You could try BodyParser method, the Document Link at https://docs.gofiber.io/api/ctx#bodyparser


type Person struct {
    Name string `json:"name" xml:"name" form:"name"`
}

app.Post("/", func(c *fiber.Ctx) error {
        p := new(Person)
        if err := c.BodyParser(p); err != nil {
            return err
        }
        log.Println(p.Name)
        return nil
})