使用golang进行http,get或postJson请求
更新时间:2023年12月13日 10:50:14 作者:彦楠
这篇文章主要为大家详细介绍了如何使用golang进行http,get或postJson请求,文中的示例代码简洁易懂,具有一定的借鉴价值,感兴趣的小伙伴可以了解一下
1、http封装get,postJson类
package httpUtil import ( "bytes" logxx "go-gift-panel/src/log" "io" "io/ioutil" "net/http" ) func PostJson(url string, jsonData []byte) string { logxx.Log.Info("请求的url=", url, " 请求的JSON Data:", string(jsonData)) // 输出 JSON 格式的数据 resp, err := http.Post(url, "application/json", bytes.NewBuffer(jsonData)) // 发起 POST 请求 if err != nil { logxx.Log.Error("ERROR postJson请求异常 http.Post err:", err) return "e" } defer func(Body io.ReadCloser) { err := Body.Close() if err != nil { logxx.Log.Error("ERROR postJson请求异常 Body.Close err:", err) } }(resp.Body) body, err := ioutil.ReadAll(resp.Body) // 读取响应内容 if err != nil { logxx.Log.Error("ERROR postJson读取body异常 ioutil.ReadAll err:", err) return "e" } logxx.Log.Info("请求返回内容 Response Body:", string(body), " Response Status:", resp.Status) // 输出响应内容 return string(body) } func Get(url string) { logxx.Log.Info("请求的url=", url) // 输出 resp, err := http.Get(url) // 发起 GET 请求 if err != nil { logxx.Log.Error("ERROR Get请求异常 http.Post err:", err) return } defer func(Body io.ReadCloser) { err := Body.Close() if err != nil { logxx.Log.Error("ERROR Get请求异常 Body.Close err:", err) } }(resp.Body) body, err := ioutil.ReadAll(resp.Body) // 读取响应内容 if err != nil { logxx.Log.Error("ERROR Get读取body异常:", err) return } logxx.Log.Info("请求返回内容 Response Body:", string(body), " Response Status:", resp.Status) // 输出响应内容 }
2、日志logxx类
package logxx import ( "github.com/sirupsen/logrus" "gopkg.in/natefinch/lumberjack.v2" "io" "os" ) var Log = logrus.New() // var file *os.File func Init() { logFile := &lumberjack.Logger{ Filename: "/data/giftpanel/logs/giftpanel_.log", MaxSize: 100, // megabytes 单个文件大小100MB MaxBackups: 100, //保留100个文件 MaxAge: 60, //days 保留60天 Compress: false, // 是否压缩 便于查询不压缩 LocalTime: true, //true使用本地时区 } // 设置日志级别 Log.SetLevel(logrus.InfoLevel) // 设置输出文件名和代码行号 Log.SetReportCaller(true) // 设置日志格式为JSON格式 Log.SetFormatter(&logrus.JSONFormatter{ TimestampFormat: "2006-01-02 15:04:05.000", // 设置时间格式,包括毫秒 }) Log.SetOutput(logFile) // 设置同时输出到控制台和文件 Log.SetOutput(io.MultiWriter(os.Stdout, logFile)) }
到此这篇关于使用golang进行http,get或postJson请求的文章就介绍到这了,更多相关go请求内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
一站式解决方案:在Windows和Linux上快速搭建Go语言开发环境
本文将介绍如何在Windows和Linux操作系统下搭建Go语言开发环境,以帮助您更高效地进行Go语言开发,需要的朋友可以参考下2023-10-10
最新评论