ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
> 本章介绍处理完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") } ~~~