响应处理基础
Gin 提供丰富的响应方法,支持多种数据格式。
字符串响应
使用 c.String() 返回纯文本:
Go
r.GET("/string", func(c *gin.Context) {
c.String(200, "Hello, %s", "Gin")
})
JSON 响应
使用 c.JSON() 返回 JSON 格式:
Go
r.GET("/json", func(c *gin.Context) {
c.JSON(200, gin.H{
"code": 0,
"msg": "success",
"data": "Hello Gin",
})
})
// 使用结构体
type User struct {
Name string `json:"name"`
Age int `json:"age"`
}
r.GET("/user", func(c *gin.Context) {
c.JSON(200, User{Name: "张三", Age: 25})
})
XML 响应
使用 c.XML() 返回 XML 格式:
Go
r.GET("/xml", func(c *gin.Context) {
c.XML(200, gin.H{
"message": "Hello Gin",
})
})
HTML 响应
使用 c.HTML() 返回 HTML 模板:
Go
// 加载模板
r.LoadHTMLGlob("templates/*")
r.GET("/html", func(c *gin.Context) {
c.HTML(200, "index.html", gin.H{
"title": "Gin 示例",
})
})
原始响应
使用 c.Data() 返回原始字节数据:
Go
r.GET("/data", func(c *gin.Context) {
c.Data(200, "text/plain; charset=utf-8", []byte("原始数据"))
})
响应方法对比
| 方法 | 格式 | 常用场景 |
|---|---|---|
| String | 纯文本 | 简单消息、健康检查 |
| JSON | JSON | API 接口 |
| XML | XML | 传统系统集成 |
| HTML | HTML | 服务端渲染页面 |
| Data | 二进制 | 文件、原始数据 |
Gin 默认自动设置
Content-Type,无需手动指定。
要点总结
c.String()返回纯文本c.JSON()是最常用的 API 响应方法c.HTML()需要先加载模板文件c.Data()用于返回原始二进制数据
📝 发现内容有误?点击此处直接编辑