登录
首页 >  Golang >  Go问答

重用Go http客户端

来源:stackoverflow

时间:2024-04-09 15:54:19 280浏览 收藏

Golang不知道大家是否熟悉?今天我将给大家介绍《重用Go http客户端》,这篇文章主要会讲到等等知识点,如果你在看完本篇文章后,有更好的建议或者发现哪里有问题,希望大家都能积极评论指出,谢谢!希望我们能一起加油进步!

问题内容

我想对 params 数组中的每个参数发出 get 请求。网址是静态的。有没有办法在每次迭代中重用我的自定义 http 客户端?我不想为每个请求重置标头。理想情况下,我想为每次迭代执行类似 client.do(param) 的操作。

client := &http.Client{}


for _, param := range params {
    uri := url + param

    req, err := http.NewRequest(http.MethodGet, uri, nil)

    req.Header.Add("Cookie", cookie)

    resp, _ := client.Do(req)

    defer resp.Body.Close()

    // do something...
}

解决方案


我认为您只想保留您的 cookie,而不必在每个请求上设置它?如果是这种情况,您可以这样做:

import (
    "net/http"
    "net/http/cookiejar"
    "golang.org/x/net/publicsuffix"
)

// All users of cookiejar should import "golang.org/x/net/publicsuffix"
cookieJar, err := cookiejar.New(&cookiejar.Options{PublicSuffixList: publicsuffix.List})
if err != nil {
    panic(err)
}

var cookies []*http.Cookie
cookies = append(cookies, cookie)

u, err := url.Parse("http://whateversite.com")
if err != nil {
    panic(err)
}

jar.SetCookies(u, cookies)

client := &http.Client{
    Jar: cookieJar,
}

终于介绍完啦!小伙伴们,这篇关于《重用Go http客户端》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>