我的代碼 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&某項=某值我能找到的所有文檔都涉及將查詢字符串轉(zhuǎn)換為結(jié)構(gòu)。此服務(wù)需要做的就是將查詢字符串轉(zhuǎn)換為 json 并將其寫入磁盤。如果我刪除 ?,我可以使用 Params('*') 來獲取它,但是路徑是有問題的,因為我還需要單詞“/event/”。該值也是任意的。此服務(wù)只是將其寫入磁盤并返回 200。但是我不知道如何使用戈蘭的Fiber獲取查詢字符串。有辦法嗎?如果沒有,是否有其他性能方法來獲取此內(nèi)容?
2 回答

慕運維8079593
TA貢獻1876條經(jīng)驗 獲得超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"))
}
- 2 回答
- 0 關(guān)注
- 105 瀏覽
添加回答
舉報
0/150
提交
取消