欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2023年12月13日 10:50:14   作者:彥楠  
這篇文章主要為大家詳細(xì)介紹了如何使用golang進(jìn)行http,get或postJson請求,文中的示例代碼簡潔易懂,具有一定的借鑒價(jià)值,感興趣的小伙伴可以了解一下

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 單個(gè)文件大小100MB
		MaxBackups: 100,   //保留100個(gè)文件
		MaxAge:     60,    //days	保留60天
		Compress:   false, // 是否壓縮 便于查詢不壓縮
		LocalTime:  true,  //true使用本地時(shí)區(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è)置時(shí)間格式,包括毫秒
	})

	Log.SetOutput(logFile)
	// 設(shè)置同時(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)文章

  • 基于Go語言實(shí)現(xiàn)簡單網(wǎng)絡(luò)聊天室(命令行模式)

    基于Go語言實(shí)現(xiàn)簡單網(wǎng)絡(luò)聊天室(命令行模式)

    這篇文章主要為大家詳細(xì)介紹了如何基于Go語言實(shí)現(xiàn)簡單網(wǎng)絡(luò)聊天室,文中的示例代碼簡潔易懂,有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-02-02
  • Go語言break跳轉(zhuǎn)語句怎么使用

    Go語言break跳轉(zhuǎn)語句怎么使用

    這篇文章主要介紹了Go語言break跳轉(zhuǎn)語句怎么使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-01-01
  • Go語言基礎(chǔ)函數(shù)基本用法及示例詳解

    Go語言基礎(chǔ)函數(shù)基本用法及示例詳解

    這篇文章主要為大家介紹了Go語言基礎(chǔ)函數(shù)基本用法及示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2021-11-11
  • go 實(shí)現(xiàn)簡易端口掃描的示例

    go 實(shí)現(xiàn)簡易端口掃描的示例

    該功能實(shí)現(xiàn)原理很簡單,就是發(fā)送socket連接(IP+端口),如果能連接成功,說明目標(biāo)主機(jī)開放了某端口。當(dāng)要大量掃描端口時(shí),就需要寫并發(fā)編程了。
    2021-05-05
  • Go語言中的上下文取消操作詳解

    Go語言中的上下文取消操作詳解

    這篇文章主要給大家介紹了關(guān)于Go語言中上下文取消操作的相關(guān)資料,本文將解釋我們?nèi)绾卫蒙舷挛膸斓娜∠匦?,并通過一些模式和最佳實(shí)踐來使用取消,使你的程序更快、更健壯。需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • LRU?LFU?TinyLFU緩存算法實(shí)例詳解

    LRU?LFU?TinyLFU緩存算法實(shí)例詳解

    這篇文章主要為大家介紹了LRU?LFU?TinyLFU緩存算法實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • 一文詳解Golang中new和make的區(qū)別

    一文詳解Golang中new和make的區(qū)別

    在Go語言中,new和make是兩個(gè)用于創(chuàng)建對象的內(nèi)建函數(shù)。本文將詳細(xì)介紹new和make的區(qū)別,并通過多個(gè)方面的分析和代碼示例,幫助大家理解它們的使用場景
    2023-05-05
  • 詳解Golang 推薦的命名規(guī)范

    詳解Golang 推薦的命名規(guī)范

    這篇文章主要介紹了詳解Golang 推薦的命名規(guī)范,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-02-02
  • Golang回調(diào)函數(shù)與閉包和接口函數(shù)的定義及使用介紹

    Golang回調(diào)函數(shù)與閉包和接口函數(shù)的定義及使用介紹

    這篇文章主要介紹了Golang回調(diào)函數(shù)與閉包和接口函數(shù)的定義及使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-05-05
  • 基于GORM實(shí)現(xiàn)CreateOrUpdate方法詳解

    基于GORM實(shí)現(xiàn)CreateOrUpdate方法詳解

    這篇文章主要為大家介紹了基于GORM實(shí)現(xiàn)CreateOrUpdate方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10

最新評論