gpt4 book ai didi

Golang,更改自定义客户端 MaxIdleConnsPerHost 的结构

转载 作者:数据小太阳 更新时间:2023-10-29 03:06:08 34 4
gpt4 key购买 nike

我想设置一个自定义的 http 客户端来同时获取多个 http 请求。但是,我对 Golang 比较陌生,我面临着改变客户结构和我想做的事情的可行性的问题。

我想用我创建的那个改变 s 的传输。

我的脚本的简化版本是:

package main

import (
"fmt"
"os"
"github.com/njasm/gosoundcloud"
)

func main() {
s, err := gosoundcloud.NewSoundcloudApi("client_id", "client_secret", nil)
if err != nil {
panic(err)
}

if err = s.PasswordCredentialsToken("user@mail.com", "password"); err!= nil {
fmt.Println(err)
os.Exit(1)
}

var userID uint64 = 1
Transport, ok := http.DefaultTransport.(*http.Transport)
if !ok {
fmt.Println("http.DefaultClient is not an http.Client")
os.Exit(1)
}
Transport.MaxIdleConnsPerHost = 250
//Here I would like to change s'Transport so that it handles 250 MaxIdleConns
member, err := s.GetUser(userID)
if err != nil {
fmt.Println(err)
os.Exit(1)
}
fmt.Println(member)
}

这是 s 的结构

type SoundcloudApi struct {
conf *oauth2.Config
httpClient *http.Client
response *http.Response
}

引用资料:

https://golang.org/pkg/net/http/#Client https://godoc.org/github.com/njasm/gosoundcloud#SoundcloudApi

最佳答案

怎么样:

tr := &http.Transport{DisableKeepAlives: false, MaxIdleConnsPerHost:250} 
client := &http.Client{Transport: tr}

并将client分配给SoundcloudApi.httpClient

关于Golang,更改自定义客户端 MaxIdleConnsPerHost 的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37379706/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com