本文整理汇总了Golang中github.com/valyala/fasthttp.RequestCtx.QueryArgs方法的典型用法代码示例。如果您正苦于以下问题:Golang RequestCtx.QueryArgs方法的具体用法?Golang RequestCtx.QueryArgs怎么用?Golang RequestCtx.QueryArgs使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/valyala/fasthttp.RequestCtx
的用法示例。
在下文中一共展示了RequestCtx.QueryArgs方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: requestHandler
func requestHandler(ctx *fasthttp.RequestCtx) {
fmt.Fprintf(ctx, "Hello, world!\n\n")
fmt.Fprintf(ctx, "Request method is %q\n", ctx.Method())
fmt.Fprintf(ctx, "RequestURI is %q\n", ctx.RequestURI())
fmt.Fprintf(ctx, "Requested path is %q\n", ctx.Path())
fmt.Fprintf(ctx, "Host is %q\n", ctx.Host())
fmt.Fprintf(ctx, "Query string is %q\n", ctx.QueryArgs())
fmt.Fprintf(ctx, "User-Agent is %q\n", ctx.UserAgent())
fmt.Fprintf(ctx, "Connection has been established at %s\n", ctx.ConnTime())
fmt.Fprintf(ctx, "Request has been started at %s\n", ctx.Time())
fmt.Fprintf(ctx, "Serial request number for the current connection is %d\n", ctx.ConnRequestNum())
fmt.Fprintf(ctx, "Your ip is %q\n\n", ctx.RemoteIP())
fmt.Fprintf(ctx, "Raw request is:\n---CUT---\n%s\n---CUT---", &ctx.Request)
ctx.SetContentType("text/plain; charset=utf8")
// Set arbitrary headers
ctx.Response.Header.Set("X-My-Header", "my-header-value")
// Set cookies
var c fasthttp.Cookie
c.SetKey("cookie-name")
c.SetValue("cookie-value")
ctx.Response.Header.SetCookie(&c)
}
示例2: Match
func (s *Selector) Match(ctx *fasthttp.RequestCtx) (string, bool) {
var matchSlice []byte
found := false
switch s.RequestAttr {
case "IP":
matchSlice = []byte(ctx.RemoteIP().String())
case "Method":
matchSlice = ctx.Method()
case "Path":
matchSlice = ctx.Path()
case "Host":
matchSlice = ctx.Host()
case "POST":
matchSlice = ctx.PostArgs().Peek(s.SubAttr)
case "GET":
matchSlice = ctx.QueryArgs().Peek(s.SubAttr)
case "Param":
matchSlice = ctx.PostArgs().Peek(s.SubAttr)
if matchSlice == nil {
matchSlice = ctx.QueryArgs().Peek(s.SubAttr)
}
case "Header":
matchSlice = ctx.Request.Header.Peek(s.SubAttr)
default:
log.Println("unknown request attribute:", s.RequestAttr)
}
if matchSlice != nil && (s.Regexp == nil || s.Regexp.Match(matchSlice)) {
found = true
}
if s.Negate {
found = !found
}
return string(matchSlice), found
}
示例3: getQueriesCount
func getQueriesCount(ctx *fasthttp.RequestCtx) int {
n := ctx.QueryArgs().GetUintOrZero("queries")
if n < 1 {
n = 1
} else if n > 500 {
n = 500
}
return n
}
示例4: getExpvarRegexp
func getExpvarRegexp(ctx *fasthttp.RequestCtx) (*regexp.Regexp, error) {
r := string(ctx.QueryArgs().Peek("r"))
if len(r) == 0 {
r = "."
}
rr, err := regexp.Compile(r)
if err != nil {
return nil, fmt.Errorf("cannot parse r=%q: %s", r, err)
}
return rr, nil
}
示例5: TestExpvarHandlerRegexp
func TestExpvarHandlerRegexp(t *testing.T) {
var ctx fasthttp.RequestCtx
ctx.QueryArgs().Set("r", "cmd")
ExpvarHandler(&ctx)
body := string(ctx.Response.Body())
if !strings.Contains(body, `"cmdline"`) {
t.Fatalf("missing 'cmdline' expvar")
}
if strings.Contains(body, `"memstats"`) {
t.Fatalf("unexpected memstats expvar found")
}
}
示例6: zingAlbumHandler
func zingAlbumHandler(ctx *fasthttp.RequestCtx, params fasthttprouter.Params) {
zingURL := string(ctx.QueryArgs().Peek("url"))
log.Info("Zing-mp3 album request",
"zing_url", zingURL,
)
album, err := zing.ParseAlbumData(zingURL)
if err != nil {
ctx.SetStatusCode(fasthttp.StatusBadRequest)
fmt.Fprint(ctx, err)
return
}
job, err := newAlbumJob(album, ctx.Response.BodyWriter())
if err != nil {
ctx.SetStatusCode(fasthttp.StatusInternalServerError)
fmt.Fprint(ctx, err)
return
}
ctx.SetStatusCode(fasthttp.StatusOK)
job.Run()
}