为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Go 中制作自定义 http 客户端?

如何在 Go 中制作自定义 http 客户端?

Go
SMILET 2022-01-10 17:48:45
我想创建一个自定义的 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 时),因此它似乎可以满足您的要求。


查看完整回答
反对 回复 2022-01-10
  • 1 回答
  • 0 关注
  • 154 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信