当前位置: 首页 > news >正文

Golang使用HTTP框架zdpgo_resty实现文件下载

核心代码

代码解析:

  • client.SetOutputDirectory("Downloads") 设置下载目录
  • client.R().SetOutput("test.go").Get("http://127.0.0.1:3333/download 指定下载文件名并进行下载
// 设置输出目录路径,如果目录不存在,rest将创建一个!
// 这是可选的,如果你计划在Request中使用绝对路径。SetOutput '和可以一起使用。
client.SetOutputDirectory("Downloads")// HTTP响应被保存到文件中,类似于curl -o标志
_, err := client.R().SetOutput("test.go").Get("http://127.0.0.1:3333/download")

服务端

package mainimport ("net/http""os""zdpgo_chi""zdpgo_chi/middleware"
)func main() {r := zdpgo_chi.NewRouter()r.Use(middleware.RequestID)r.Use(middleware.RealIP)r.Use(middleware.Logger)r.Use(middleware.Recoverer)r.Get("/download", func(w http.ResponseWriter, r *http.Request) {fileBytes, err := os.ReadFile("server/main.go")if err != nil {panic(err)}w.WriteHeader(http.StatusOK)w.Header().Set("Content-Type", "application/octet-stream")w.Write(fileBytes)return})http.ListenAndServe(":3333", r)
}

客户端

package mainimport ("fmt""zdpgo_resty"
)func main() {client := zdpgo_resty.New()// 设置输出目录路径,如果目录不存在,rest将创建一个!// 这是可选的,如果你计划在Request中使用绝对路径。SetOutput '和可以一起使用。client.SetOutputDirectory("Downloads")// HTTP响应被保存到文件中,类似于curl -o标志_, err := client.R().SetOutput("test.go").Get("http://127.0.0.1:3333/download")// 使用绝对路径的OR// 注意:输出目录路径不用于绝对路径_, err = client.R().SetOutput("Downloads/test2.go").Get("http://127.0.0.1:3333/download")fmt.Println(err)
}
http://www.lryc.cn/news/352623.html

相关文章:

  • 提取COCO 数据集的部分类
  • 高刚性滚柱直线导轨有哪些优势?
  • KNN及降维预处理方法LDA|PCA|MDS
  • 论文精读-SwinIR Image Restoration Using Swin Transformer
  • 解释Spring Bean的生命周期
  • CTF网络安全大赛web题目:字符?正则?
  • Linux——Docker容器虚拟化平台
  • Transformer详解(3)-多头自注意力机制
  • 运用HTML、CSS设计Web网页——“西式甜品网”图例及代码
  • 大语言模型是通用人工智能的实现路径吗?【文末有福利】
  • c语言——宏offsetof
  • C#串口通信-串口相关参数介绍
  • 节省时间与精力:用BAT文件和任务计划器自动执行重复任务
  • 一年前的Java作业,模拟游戏玩家战斗
  • C++ 学习 关于引用
  • BERT ner 微调参数的选择
  • 【MySQL精通之路】系统变量-持久化系统变量
  • fdk-aac将aac格式转为pcm数据
  • 【C语言深度解剖】(15):动态内存管理和柔性数组
  • 力扣每日一题 5/25
  • (1)无线电失控保护(一)
  • 基于51单片机的多功能万年历温度计—可显示农历
  • 【软件设计师】下午题总结-数据流图、数据库、统一建模语言
  • CSDN 自动评论互动脚本
  • Tomcat端口配置
  • SpringBoot中使用AOP实现日志记录功能
  • kubernetes(k8s) v1.30.1 helm 集群安装 Dashboard v7.4.0 可视化管理工具 图形化管理工具
  • CS144(所有lab解析)
  • LeetCode 热题 100 介绍
  • Flutter 中的 AnimatedPhysicalModel 小部件:全面指南