栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

Go 基于原生的HTTP请求封装

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Go 基于原生的HTTP请求封装

//发送HTTP请求
func SendHttpRequest(url,method ,body string,cookies []http.Cookie,headers []map[string]string) (string,error){
	if method == "" {
		method = "GET"
	}
	var client = &http.Client{
		Transport:     &http.Transport{
			Proxy:                  nil,
			DialContext:            (&net.Dialer{
				Timeout:       5*time.Second,
			}).DialContext,
			ForceAttemptHTTP2:      true,
		},
		CheckRedirect: nil,
		Jar:           nil,
		Timeout:       5*time.Second,
	}
	var req *http.Request

	//实例化一个request对象
	req, _ = http.NewRequest(method, url, strings.NewReader(body))

	//设置Cookie
	if nil != cookies && len(cookies) == 0 {
		for i := range cookies {
			req.AddCookie(&cookies[i])
		}
	}

	//设置Header
	if nil != headers && len(headers) > 0 {
		for i := range headers {
			for k,v := range headers[i] {
				req.Header.Add(k,v)
			}
		}
	}

	//发送请求
	resp,err := client.Do(req)
	if err != nil{
		return "",err
	}
	defer req.Body.Close()
	buf := bytes.Buffer{}
	buf.ReadFrom(resp.Body)
	return buf.String(),nil
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/905469.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号