为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用戈朗的光纤获取查询字符串?

如何使用戈朗的光纤获取查询字符串?

Go
哆啦的时光机 2022-09-19 10:20:59
我的代码   app.Get("/event/*", func(c *fiber.Ctx) error {                    // GET THE ACCOUNT FROM THE PATH                 fmt.Println("PATH")                 fmt.Println(c.Path())                 fmt.Println("END PATH")                 fmt.Printf("%+v\n", c)                 fmt.Println("END PERCENT V")                 msg := fmt.Sprintf("%s\n", c.Params("*"))                 fmt.Println(msg)                 fmt.Println("END PARAMS *")                 fmt.Println(c.Body())                 fmt.Println("END BODY")                 fmt.Println(c)                 fmt.Println("END RAW")我称之为curl 'localhost:3000/event/?a=b&b=c&d=e'我的输出PATH /event/ END PATH #0000000100000001 - 127.0.0.1:3000 <-> 127.0.0.1:46890 - GET http://localhost:3000/event/?a=b&b=c&d=eEND PERCENT V END PARAMS * [] END BODY #0000000100000001 - 127.0.0.1:3000 <-> 127.0.0.1:46890 - GET http://localhost:3000/event/?a=b&b=c&d=eEND RAW我想要的是 a=b&b=x&d=e 作为字符串或作为一个 json 对象。然而!此字符串没有固定的格式。它可能很容易是 blah=123&blah2=234。或 x=1&某项=某值我能找到的所有文档都涉及将查询字符串转换为结构。此服务需要做的就是将查询字符串转换为 json 并将其写入磁盘。如果我删除 ?,我可以使用 Params('*') 来获取它,但是路径是有问题的,因为我还需要单词“/event/”。该值也是任意的。此服务只是将其写入磁盘并返回 200。但是我不知道如何使用戈兰的Fiber获取查询字符串。有办法吗?如果没有,是否有其他性能方法来获取此内容?
查看完整描述

2 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

fiber使用。fasthttp


https://pkg.go.dev/github.com/gofiber/fiber/v2#Request

https://pkg.go.dev/github.com/valyala/fasthttp#RequestCtx.URI

package main


import (

    "fmt"

    "log"


    "github.com/gofiber/fiber/v2"

)


func main() {

    app := fiber.New()


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

        fmt.Println(string(c.Request().URI().QueryString()))

        return c.SendString("Hello, World!")

    })


    log.Fatal(app.Listen(":3000"))

}


查看完整回答
反对 回复 2022-09-19
?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

您可以简单地使用

app.Get("/", func(c *fiber.Ctx) {
  queryValue := c.Query("param_key")
})

如这里所述


查看完整回答
反对 回复 2022-09-19
  • 2 回答
  • 0 关注
  • 73 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信