zoukankan      html  css  js  c++  java
  • go的gin框架从请求中获取参数的方法

    前言:

    go语言的gin框架go里面比较好的一个web框架, github的start数超过了18000.可见此框架的可信度

    如何获取请求中的参数

    假如有这么一个请求:

    POST   /post/test?id=1234&page=1  HTTP/1.1

    请求头:  Content-Type: application/x-www-form-urlencoded

    form表单参数:  name=manu&message=this_is_great

    gin的实现:

    id := c.Query("id") //查询请求URL后面的参数
    page := c.DefaultQuery("page", "0") //查询请求URL后面的参数,如果没有填写默认值
    name := c.PostForm("name") //从表单中查询参数
    
    /////////////////////////////////
    //POST和PUT主体参数优先于URL查询字符串值。
    name := c.Request.FormValue("name") 
    
    //返回POST并放置body参数,URL查询参数被忽略
    name := c.Request.PostFormValue("name")
    
    //从表单中查询参数,如果没有填写默认值  
    message := c.DefaultPostForm("message", "aa") 

    假如gin定义的路由路径为:

    router.POST("/post/:uuid", func(c *gin.Context){
        ...
    }

    则获取uuid的值方法为

    uuid := c.Param("uuid") //取得URL中参数

    其他:

    s, _ := c.Get("current_manager") //从用户上下文读取值      
    
    var u User
    
    //从http.Request中读取值到User结构体中,手动确定绑定类型binding.Form
    err1 := c.BindWith(&u, binding.Form) 
    
    //从http.Request中读取值到User结构体中,根据请求方法类型和请求内容格式类型自动确定绑定类型
    err2 := c.Bind(&u)
    
    //从session中读取值
    //用户上下文和session生命周期不同,每一次请求会生成一个对应的上下文,一次http请求结束,该次请求的上下文结束,一般来说session(会话)会留存一段时间
    //session(会话)中一般保存用户登录状态等信息,context(上下文)主要用于在一次http请求中,在中间件(流)中进行信息传递
    user := sessions.Default(c).get("user") 

    未完, 待续....

  • 相关阅读:
    106. Construct Binary Tree from Inorder and Postorder Traversal
    105. Construct Binary Tree from Preorder and Inorder Traversal
    449. Serialize and Deserialize BST
    114. Flatten Binary Tree to Linked List
    199. Binary Tree Right Side View
    173. Binary Search Tree Iterator
    98. Validate Binary Search Tree
    965. Univalued Binary Tree
    589. N-ary Tree Preorder Traversal
    eclipse设置总结
  • 原文地址:https://www.cnblogs.com/xuange306/p/9334225.html
Copyright © 2011-2022 走看看