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") 

    未完, 待续....

  • 相关阅读:
    序列JSON数据和四种AJAX操作方式
    jquery.validate和jquery.form.js实现表单提交
    JQuery Validate使用总结1:
    HOWTO: Include Base64 Encoded Binary Image Data (data URI scheme) in Inline Cascading Style Sheets (CSS)(转)
    SharePoint 2007 使用4.0 .Net
    动态IP解决方案
    取MS CRM表单的URL
    从Iframe或新开的窗口访问MS CRM 2011(转)
    Toggle or Hidden MS CRM Tab
    Windows 2008下修改域用户密码
  • 原文地址:https://www.cnblogs.com/shuiche/p/9334225.html
Copyright © 2011-2022 走看看