第六届字节跳动青训营——Gin框架学习实践之路第二节 | 青训营

185 阅读3分钟

内容概述

承接上文,本文主要介绍一下各式的参数请求Query,Params和请求头。

主要内容

四大请求方式

主要分为GET请求,POST请求,PUT请求和DELETE请求。其中GET请求表示从服务器取出一项或多项资源,POST请求表示在服务器新建一个资源,PUT请求表示在服务器更新资源,由客户端提供完整资源数据,DELETE请求表示从服务器删除资源。此外,还有个PATCH请求,不常用,也表示在服务器更新资源,但是需要客户端提供需要修改的资源数据。

获取请求参数Query

下面介绍几种常见的获取参数的方式。

  • 第一个方法 value := c.Query("key"),表示通过key获取请求中携带的querystring参数,返回的是string。
  • 第二个方法value := c.DefaultQuery("key","defaultValue")表示通过key获取请求中携带的querystring参数,如果不能成功返回的就返回defaultValue。
  • 第三个方法value, ok := c.GetQuery("key"),表示通过key获取请求中携带的querystring参数,取不到返回值的话会返回一个false。
  • 第四个方法values := c.QueryArray("key"),表示通过key获取多个相同的querystring参数。

获取路由参数Param

Gin通过 c.Param() 方法获取路由参数,即在路由中定义的变量。但如果需要获取多个参数,可以使用 c.Params 属性,该属性是一个数组,包含了所有的参数。

r.GET("/user/:id", func(c *gin.Context) {
    id := c.Param("id")
    c.String(http.StatusOK, "id=%s", id)
})

获取请求头参数

当你使用http(https)协议请求一个网站的时候,你的浏览器会向对方的服务器发送一个http请求,这个请求同样包含三个部分: 请求方法 请求路径(URL) 请求协议版本;报文主体;参数(POST/GET)。这些讯息里面包含了你的请求方法,你请求的目的地,你的语言,以及你的浏览器的各种信息,这样对方的服务器就能靠着辨识这些讯息来辨识你的浏览器。具体的请求头参数如下所示: :authority:请求的域名
:method:请求方法
:path :请求路径 :scheme:请求的协议
Accept:客户机通过这个头,告诉服务器,它支持哪些数据类型
Accept-Encoding: 客户机通过这个头,告诉服务器,支持哪种数据压缩格式
Accept-Language: 客户机采用的是哪个语言
Cookie:客户机通过这个头,可以带点数据给服务器
Host:客户机通过这个头,告诉服务器,想访问服务器哪台主机
If-Modified-Since:客户机通过这个头,告诉服务器,数据缓存的时间
Referer:客户机通过这个头,告诉服务器,客户机是从哪个页面来的(防盗链)
User-Agent: 说明客户机操作系统信息,以及浏览器信息 获取一个请求头使用方法c.GetHeader("User-Agent"),获取所有的使用方法c.Request.Header,是一个map类型map[string][]string,然后通过Get方法取出参数c.Request.Header.Get("User-Agent"),不区分大小写,直接取区分大小写。

内容总结

可以发现Gin框架对各种方法封装的很好,使用非常简单。