Ich möchte einen benutzerdefinierten HTTP-Client festlegen, um mehrere http-Anforderungen gleichzeitig abzurufen. Allerdings bin ich relativ neu Golang und ich habe Probleme mit der Struktur der Clients und der Machbarkeit von was ich tun möchte.Golang, Ändern von Strukturen von benutzerdefinierten Clients MaxIdleConnsPerHost
Ich möchte den Transport von s mit dem einen, den ich erstellt habe, ändern.
Eine vereinfachte Version von meinem Skript ist:
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("[email protected]", "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)
}
Hier sind die Strukturen für s
type SoundcloudApi struct {
conf *oauth2.Config
httpClient *http.Client
response *http.Response
}
Referenzen:
https://golang.org/pkg/net/http/#Client https://godoc.org/github.com/njasm/gosoundcloud#SoundcloudApi
Ich würde sagen, das ist eine Feature-Anfrage, jede Antwort hier wäre ein reiner Hack. Sie sollten ein [Problem] (https://github.com/njasm/gosoundcloud/issues) einreichen. – OneOfOne