我想创建一个自定义的 http 客户端,这样我就可以尽可能多地重复使用它。但是,我认为 Go 已经抽象了代码背后发生的一些过程。我知道要获得获取请求,必须已创建客户端。客户端是在哪里创建的,我如何自定义它或用我自己的替换它?package mainimport ( "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) errorfunc (s *SoundcloudApi) GetUser(id uint64) (*User, error)
1 回答
MMMHUHU
TA贡献1834条经验 获得超8个赞
使用 Golang,您可以轻松创建客户端并将其用于请求:
client := &http.Client{
CheckRedirect: redirectPolicyFunc,
}
resp, err := client.Get("http://example.com")
但在您的情况下,根据您使用的 gosoundcloud 包,调用时会创建 http.Client :
s.PasswordCredentialsToken("email@example.com", "password");
创建的客户端嵌入到“SoundcloudApi”结构(代码中的“s”)中,并且是一个私有字段。因此,您无法访问它。
无论如何,它似乎在您要求“s”做某事时使用(例如在调用 s.User 时),因此它似乎可以满足您的要求。
- 1 回答
- 0 关注
- 154 浏览
添加回答
举报
0/150
提交
取消