我想创建一个自定义http客户端,以便尽可能多次重复使用它。 但是,我认为Go已经抽象了代码背后发生的一些过程。 我知道要获得一个get请求,必须创建一个客户端。
客户端在哪里创建,如何自定义或替换为自己的客户端?
package main
import (
"fmt"
"github.com/njasm/gosoundcloud"
)
s, err = gosoundcloud.NewSoundcloudApi("Client_Id", "Client_Secret", nil)
func main() {
if err = s.PasswordCredentialsToken("email@example.com", "password"); err != nil {
fmt.Println(err)
os.Exit(1)
}
member, err := s.GetUser(uint64(1))
if err != nil {
panic(err)
}
fmt.Println(member.Followers)
}
以下是soundcloud包装器的参考:
func NewSoundcloudApi(c string, cs string, callback *string) (*SoundcloudApi, error)
func (s *SoundcloudApi) PasswordCredentialsToken(u string, p string) error
func (s *SoundcloudApi) GetUser(id uint64) (*User, error)
答案 0 :(得分:3)
使用Golang,您可以轻松创建客户端并将其用于请求:
client := &http.Client{
CheckRedirect: redirectPolicyFunc,
}
resp, err := client.Get("http://example.com")
但是在您的情况下,根据您使用的gosoundcloud软件包,http:Client会在调用时创建:
s.PasswordCredentialsToken("email@example.com", "password");
创建的客户端嵌入到" SoundcloudApi" struct(代码中的" s"),是一个私有字段。因此,您无法访问它。
无论如何,它似乎随时都会被使用" s"做某事(例如,当调用s.User时),所以它似乎做你要求的。