最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用golang進(jìn)行http,get或postJson請求

 更新時間:2023年12月13日 10:50:14   作者:彥楠  
這篇文章主要為大家詳細(xì)介紹了如何使用golang進(jìn)行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 格式的數(shù)據(jù)
	resp, err := http.Post(url, "application/json", bytes.NewBuffer(jsonData)) // 發(fā)起 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) // 讀取響應(yīng)內(nèi)容
	if err != nil {
		logxx.Log.Error("ERROR postJson讀取body異常 ioutil.ReadAll err:", err)
		return "e"
	}
	logxx.Log.Info("請求返回內(nèi)容 Response Body:", string(body), " Response Status:", resp.Status) // 輸出響應(yīng)內(nèi)容
	return string(body)
}

func Get(url string) {
	logxx.Log.Info("請求的url=", url) // 輸出
	resp, err := http.Get(url)     // 發(fā)起 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) // 讀取響應(yīng)內(nèi)容
	if err != nil {
		logxx.Log.Error("ERROR Get讀取body異常:", err)
		return
	}
	logxx.Log.Info("請求返回內(nèi)容 Response Body:", string(body), " Response Status:", resp.Status) // 輸出響應(yīng)內(nèi)容
}

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使用本地時區(qū)
	}
	// 設(shè)置日志級別
	Log.SetLevel(logrus.InfoLevel)

	// 設(shè)置輸出文件名和代碼行號
	Log.SetReportCaller(true)
	// 設(shè)置日志格式為JSON格式
	Log.SetFormatter(&logrus.JSONFormatter{
		TimestampFormat: "2006-01-02 15:04:05.000", // 設(shè)置時間格式,包括毫秒
	})

	Log.SetOutput(logFile)
	// 設(shè)置同時輸出到控制臺和文件
	Log.SetOutput(io.MultiWriter(os.Stdout, logFile))
}

到此這篇關(guān)于使用golang進(jìn)行http,get或postJson請求的文章就介紹到這了,更多相關(guān)go請求內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • GoLang語法之標(biāo)準(zhǔn)庫fmt.Printf的使用

    GoLang語法之標(biāo)準(zhǔn)庫fmt.Printf的使用

    fmt包實現(xiàn)了類似C語言printf和scanf的格式化I/O,主要分為向外輸出內(nèi)容和獲取輸入內(nèi)容兩大部分,本文就來介紹一下GoLang語法之標(biāo)準(zhǔn)庫fmt.Printf的使用,感興趣的可以了解下
    2023-10-10
  • Golang構(gòu)建WebSocket服務(wù)器和客戶端的示例詳解

    Golang構(gòu)建WebSocket服務(wù)器和客戶端的示例詳解

    這篇文章主要為大家詳細(xì)介紹了如何使用Go語言構(gòu)建WebSocket服務(wù)器和客戶端,以實現(xiàn)雙向通信,文中的示例代碼講解詳細(xì),需要的小伙伴可以參考一下
    2023-11-11
  • Go?語言入門學(xué)習(xí)之時間包

    Go?語言入門學(xué)習(xí)之時間包

    這篇文章主要介紹了Go?語言入門學(xué)習(xí)之時間包,GO?語言提供了???time??包來測量和顯示時間,下文關(guān)于GO時間包的相關(guān)介紹需要的小伙伴可以參考一下
    2022-04-04
  • golang切片初始化的使用示例

    golang切片初始化的使用示例

    Go語言中,切片可通過直接初始化、數(shù)組初始化、切片表達(dá)式等多種方法進(jìn)行初始化,這些方式提供了靈活的數(shù)據(jù)管理方式,適合不同的編程需求和場景,感興趣的可以了解一下
    2024-10-10
  • Go語言新寵:pdqsort排序算法的完美打造

    Go語言新寵:pdqsort排序算法的完美打造

    pdqsort是一種新的排序算法,特別適用于Go語言,它是由Go語言團(tuán)隊開發(fā)的,旨在提供高效且穩(wěn)定的排序算法,pdqsort采用了一種分治的策略,將數(shù)組分成小塊進(jìn)行排序,然后再合并這些塊,需要的朋友可以參考下
    2023-10-10
  • golang通過gorm操作sqlite設(shè)置主鍵自增的步驟

    golang通過gorm操作sqlite設(shè)置主鍵自增的步驟

    這篇文章主要介紹了golang通過gorm操作sqlite設(shè)置主鍵自增的詳細(xì)步驟,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • Go語言學(xué)習(xí)otns示例分析

    Go語言學(xué)習(xí)otns示例分析

    這篇文章主要為大家介紹了Go語言學(xué)習(xí)otns示例分析詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • Go命令行參數(shù)解析flag 包使用示例詳解

    Go命令行參數(shù)解析flag 包使用示例詳解

    這篇文章主要介紹了Go命令行參數(shù)解析flag 包使用,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-01-01
  • go-cqhttp權(quán)限管理系統(tǒng)的實現(xiàn)代碼

    go-cqhttp權(quán)限管理系統(tǒng)的實現(xiàn)代碼

    這篇文章主要介紹了go-cqhttp權(quán)限管理,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-09-09
  • golang常見接口限流算法的實現(xiàn)

    golang常見接口限流算法的實現(xiàn)

    本文主要介紹了golang常見接口限流算法的實現(xiàn),包含固定窗口、滑動窗口、漏桶和令牌桶,具有一定的參考價值,感興趣的可以了解一下
    2025-03-03

最新評論

沈阳市| 达拉特旗| 岢岚县| 温州市| 安西县| 嵩明县| 泰顺县| 万载县| 云安县| 民乐县| 额尔古纳市| 出国| 宜昌市| 久治县| 宁陵县| 新营市| 洪洞县| 阳城县| 左贡县| 顺义区| 吴桥县| 易门县| 错那县| 襄樊市| 蓬莱市| 定襄县| 锦屏县| 湛江市| 海淀区| 合作市| 平南县| 双城市| 遂宁市| 平泉县| 监利县| 册亨县| 宣城市| 宝兴县| 尖扎县| 永定县| 沂源县|