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")
}
相关推荐
这是程序猿7 分钟前
基于java的ssm框架旅游在线平台
java·开发语言·spring boot·spring·旅游·旅游在线平台
芳草萋萋鹦鹉洲哦11 分钟前
【elemen/js】阻塞UI线程导致的开关卡顿如何优化
开发语言·javascript·ui
爱学习的小邓同学15 分钟前
C++ --- 多态
开发语言·c++
颜*鸣&空23 分钟前
QT实现串口通信+VSPD+串口调试工具
开发语言·qt
槁***耿1 小时前
JavaScript在Node.js中的事件发射器
开发语言·javascript·node.js
U***49831 小时前
JavaScript在Node.js中的Strapi
开发语言·javascript·node.js
@大迁世界1 小时前
相信我兄弟:Cloudflare Rust 的 .unwrap() 方法在 330 多个数据中心引发了恐慌
开发语言·后端·rust
大侠课堂1 小时前
C#经典面试题100道
开发语言·c#
X***E4631 小时前
PHP在电商中的订单处理
开发语言·php
Old_Driver_Lee1 小时前
C语言常用语句
c语言·开发语言