go语言gin框架的基本使用

1.首先在linux环境上安装go环境,这个网上搜搜就行

2.初始化一个go mod,网上搜搜怎么初始化

3.下面go代码的网址和端口绑定自己本机的就行

4.与另一篇CSDN一起食用,效果更好哟---> libcurl的get、post的使用-CSDN博客

Go 复制代码
package main

import (
    "github.com/gin-gonic/gin"
	"flag"
	"fmt"
)

func downFile(c *gin.Context, filePath string, filename string)  {

    c.Writer.Header().Add("Content-Disposition", fmt.Sprintf("attachment; filename=%s", filename))
    c.Writer.Header().Add("Content-Type", "application/octet-stream")
    fmt.Println(filePath)
    c.File(filePath)
}


// go build -o go_gin main.go
func main() {
	var downPath *string = flag.String("down", "/tmp", "the down dir")
	flag.Parse()
	fmt.Printf("downPath = %s\n", *downPath)
	r := gin.Default()
    r.GET("/", func(c *gin.Context) {
		c.JSON(200, gin.H{
			"message": "Hello World!",
		})
	})
    
    r.GET("/ping", func(c *gin.Context) {
        c.JSON(200, gin.H{
            "message": "pong",
        })
    })
    
    r.POST("/submit", func(c *gin.Context) {
		var json struct {
			Name string `json:"name"`
			Email string `json:"email"`
		}

		if err := c.Bind(&json); err == nil {
            print("name = " + json.Name)
            print("email = " + json.Email)
			c.JSON(200, gin.H{
				"message": "JSON received",
				"name":    json.Name,
				"email":   json.Email,
			})
		} else {
			c.JSON(400, gin.H{"error": err.Error()})
		}
	})
	// 文件下载
	r.POST("/down_file", func(c *gin.Context) {
		var json struct {
			FileName string `json:"file_name"`
		}
		if err := c.Bind(&json); err == nil {
			filePath := (*downPath) + "/" + json.FileName
			downFile(c, filePath, json.FileName)
		}
		
	})
    
    r.Run("10.74.37.146:9999") // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
}
相关推荐
数据小小爬虫13 分钟前
Python爬虫获取AliExpress商品详情
开发语言·爬虫·python
小爬虫程序猿14 分钟前
利用Python爬虫速卖通按关键字搜索AliExpress商品
开发语言·爬虫·python
一朵好运莲21 分钟前
React引入Echart水球图
开发语言·javascript·ecmascript
桃园码工27 分钟前
6-Gin 路由详解 --[Gin 框架入门精讲与实战案例]
gin·实战案例·入门精讲·路由详解
Eiceblue34 分钟前
使用Python获取PDF文本和图片的精确位置
开发语言·python·pdf
xianwu54342 分钟前
反向代理模块。开发
linux·开发语言·网络·c++·git
xiaocaibao7771 小时前
Java语言的网络编程
开发语言·后端·golang
木向1 小时前
leetcode22:括号问题
开发语言·c++·leetcode
comli_cn1 小时前
使用清华源安装python包
开发语言·python
筑基.1 小时前
basic_ios及其衍生库(附 GCC libstdc++源代码)
开发语言·c++