> 本章介绍处理完http请求后如何响应请求,Gin框架支持以字符串、json、xml、文件等格式响应请求
[TOC]
## 以字符串方式响应请求
> 函数定义:
> `func (c *Context) String(code int, format string, values ...interface{})`
~~~
func DoHandler(c *gin.Context) {
// 例子1:
c.String(200, "欢迎访问www.tizi360.com!")
// 例子2: 这里定义了两个字符串参数(两个%s),后面传入的两个字符串参数将会替换对应的%s
c.String(200,"欢迎访问%s, 你是%s", "www.tizi360.com!","最靓的仔!")
}
~~~
## 以json格式响应请求
~~~
// User 定义
type User struct {
// 通过json标签定义struct字段转换成json字段的名字
Name string `json:"name"`
Email string `json:"email"`
}
// Handler 控制器
func DoHandler(c *gin.Context) {
//初始化user对象
u := &User{
Name: "tizi365",
Email: "tizi@tizi365.com",
}
//返回json数据
//返回结果:{"name":"tizi365", "email":"tizi@tizi365.com"}
c.JSON(200, u)
//c.JSON(200, gin.H{"name": "tizi360","email": "tizi@tizi365.com"})
}
~~~
## 以xml格式响应请求
~~~
// User 定义
type User struct {
// 通过xml标签定义struct字段转换成xml字段的名字
Name string `xml:"name"`
Email string `xml:"email"`
}
// Handler 控制器
func DoHandler(c *gin.Context) {
//初始化user对象
u := &User{
Name: "tizi365",
Email: "tizi@tizi365.com",
}
//返回json数据
//返回结果:
// <?xml version="1.0" encoding="UTF-8"?>
// <User><name>tizi365</name><email>tizi@tizi365.com</email></User>
c.XML(200, u)
//c.XML(200, gin.H{"name": "tizi360","email": "tizi@tizi365.com"})
}
~~~
## 以文件格式响应请求
**例子1:**
> 直接在浏览器上返回该文件,如果是图片、word文档、pdf等则直接显示,其他则为下载
~~~
func DoHandler(c *gin.Context) {
//通过File函数,直接返回本地文件,参数为本地文件地址。
//函数说明:c.File("文件路径")
c.File("E:\\2.png")
}
~~~
**例子2:**
> 提供用户下载的方式
~~~
func DoHandler(c *gin.Context) {
//通过FileAttachment函数,返回本地文件,类似File函数,区别是可以指定下载的文件名。
//函数说明: c.FileAttachment("文件路径", "下载的文件名")
c.FileAttachment("E:\\2.png", "download.jpg")
}
~~~
## 设置http响应头(设置Header)
~~~
func DoHandler(c *gin.Context) {
//设置http响应 header, key/value方式,支持设置多个header
c.Header("name","wk123")
}
~~~
- 基础知识
- 开发环境
- 包名规则
- 包初始化 (init)
- 基础数据类型
- 基础类型转换
- 格式化输出
- go指针
- 流程控制语句
- 函数定义
- 匿名函数
- 数组和切片
- map集合
- 结构体
- Interface接口
- 日期处理
- 数学计算
- 正则表达式
- 协程 (并发处理)
- channel
- waitgroup
- mutex (锁机制)
- websocket
- protobuf
- Redis
- 错误处理
- 打包程序
- NSQ消息队列
- 单元测试
- beego
- 安装入门
- Gin
- 快速入门
- 路由与控制器
- 处理请求参数
- 表单验证
- 处理响应结果
- 渲染HTML模版
- 访问静态文件
- Gin中间件
- Cookie处理
- Session处理
- Gin上传文件
- swagger
- pprof性能测试
- GORM
- 入门教程
- 模型定义
- 数据库连接
- 插入数据
- 查询数据
- 更新数据
- 删除数据
- 事务处理
- 关联查询
- 属于 (BELONG TO)
- 一对一 (Has One)
- 一对多 (Has Many)
- 多对多 (Many to Many)
- 预加载 (Preloading)
- 错误处理
- 第三方常用插件
- viper 读取配置文件
- zap 高性能日志
- Nginx代理配置
- Goland 快捷键