Gin 学习之接收参数和读取 reader

简介: Gin 学习之接收参数和读取 reader

01

PostForm


form 传参:

func (*gin.Context).PostForm(key string) string

PostForm returns the specified key from a POST urlencoded form or multipart form when it exists, otherwise it returns an empty string `("")`.


urlencoded form 和 multipart form:


urlencoded form 数据被编码成以 '&' 分隔的键-值对, 同时以 '=' 分隔键和值. 非字母或数字的字符会被 percent-encoding。


multipart form 支持二进制数据。


02

DefaultPostForm


form 传参:

func (*gin.Context).DefaultPostForm(key string, defaultValue string) string

DefaultPostForm returns the specified key from a POST urlencoded form or multipart form when it exists, otherwise it returns the specified defaultValue string.


更多信息,查看 PostForm() and GetPostForm()。


03

Query


URL 传参

func (*gin.Context).Query(key string) string

Query returns the keyed url query value if it exists, otherwise it returns an empty string `("")`.


它是 c.Request.URL.Query().Get(key) 的一种快捷方式。


示例:

GET /path?id=1234&name=Manu&value=
c.Query("id") == "1234"
c.Query("name") == "Manu"
c.Query("value") == ""
c.Query("wtf") == ""


04

DefaultQuery


URL 传参

func (*gin.Context).DefaultQuery(key string, defaultValue string) string

DefaultQuery returns the keyed url query value if it exists, otherwise it returns the specified defaultValue string.


更多信息,查看 Query() and GetQuery()。


示例:

GET /?name=Manu&lastname=
c.DefaultQuery("name", "unknown") == "Manu"
c.DefaultQuery("id", "none") == "none"
c.DefaultQuery("lastname", "none") == ""


05

PostFormMap


form 传参:


func (*gin.Context).PostFormMap(key string) map[string]string

PostFormMap returns a map for a given form key.


06

QueryMap


URL 传参:


func (*gin.Context).QueryMap(key string) map[string]string

QueryMap returns a map for a given query key.


示例代码:

640.png


请求示例:

curl --location --request POST 'http://localhost:8081/user?tel=13800138000&email=lucy@gmail.com&sex=girl&score[a]=66&score[b]=88' \
--form 'name=lucy' \
--form 'age=17' \
--form 'level[chinese]=1' \
--form 'level[english]=2'


07

Param


URI 传参:

func (*gin.Context).Param(key string) string

Param returns the value of the URL param.


它是 c.Params.ByName(key) 的一种快捷方式。


示例:

router.GET("/user/:id", func(c *gin.Context) {
    // a GET request to /user/john
    id := c.Param("id") // id == "john"
})


08

DataFromReader


func (*gin.Context).DataFromReader(code int, contentLength int64, contentType string, reader io.Reader, extraHeaders map[string]string)

DataFromReader writes the specified reader into the body stream and updates the HTTP code.


示例代码:





目录
相关文章
|
PHP 调度 数据安全/隐私保护
【源码解读】TP5读取本地图片输出后,设置header头无效,图片乱码
在Thinkphp程序中读取本地图片,做出加工处理(如合并二维码等水印),然后输出给客户端,一直输出图片内容乱码。 设置了header image/png 不生效。 写下这篇TP源码排查文章,看看问题到底出现在哪个步骤。
573 0
【源码解读】TP5读取本地图片输出后,设置header头无效,图片乱码
|
5月前
|
消息中间件 Kafka Go
从Go channel中批量读取数据
从Go channel中批量读取数据
|
6月前
|
JavaScript
文本,前后端数据交互,简单请求,如何去给data数据赋值,在mounted()里赋值,利用axios发送的请求,res就是数据集,就是后端的数据,this.users = res.data.data
文本,前后端数据交互,简单请求,如何去给data数据赋值,在mounted()里赋值,利用axios发送的请求,res就是数据集,就是后端的数据,this.users = res.data.data
|
存储
Stream流示例、常见生成方式及Stream中间操作方法
Stream流示例、常见生成方式及Stream中间操作方法
132 0
|
JSON 中间件 Go
golang gin 框架读取无法用 body 传递的表单参数
golang gin 框架读取无法用 body 传递的表单参数
golang gin 框架读取无法用 body 传递的表单参数
|
JSON JavaScript 数据格式
封装读取 data.json 文件的方法|学习笔记
快速学习封装读取 data.json 文件的方法
|
Go
Go 接收未知大小文件并转为对应大小的byte字节流
Go 接收未知大小文件并转为对应大小的byte字节流
341 0
|
JSON 前端开发 数据格式
.net MVC 使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错,字符串的长度超过了为 maxJsonLength 属性设置的值
在.net mvc的controller中,方法返回JsonResult,一般我们这么写: [HttpPost] public JsonResult QueryFeature(string url, string whereClause) { string str=""; return Json(str); }   此时如果str过长,就会报“使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错,字符串的长度超过了为 maxJsonLength 属性设置的值”。
2955 0
|
JSON 前端开发 数据格式
fastapi(65)- 路由函数指定了 response_model,在返回自定义 JSONResponse 时, 不会限制它返回的数据结构
fastapi(65)- 路由函数指定了 response_model,在返回自定义 JSONResponse 时, 不会限制它返回的数据结构
363 0
fastapi(65)- 路由函数指定了 response_model,在返回自定义 JSONResponse 时, 不会限制它返回的数据结构
readline()函数:可以读取一行 分析: 1.创建一个file对象 2.使用循环读取每一行的内容 直到读取内容为空 3.将读取到的内容写
readline()函数:可以读取一行 分析: 1.创建一个file对象 2.使用循环读取每一行的内容 直到读取内容为空 3.将读取到的内容写