我想设置自定义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
答案 0 :(得分:1)
怎么样:
tr := &http.Transport{DisableKeepAlives: false, MaxIdleConnsPerHost:250}
client := &http.Client{Transport: tr}
并client
致SoundcloudApi.httpClient
答案 1 :(得分:1)
我是gosoundcloud的创造者..
首先感谢您使用该库。
其次,正如@OneOfOne指出的那样,我也相信这里对您的需求的任何答案都是一种解决方法,我们可以通过功能请求来解决这个问题。
因此,我邀请您提交issue进一步讨论该问题。
我会更乐意帮忙。