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

我想创建一个自定义的 http 客户端,这样我就可以尽可能多地重复使用它。但是,我认为 Go 已经抽象了代码背后发生的一些过程。我知道要获得获取请求,必须已创建客户端。


客户端是在哪里创建的,我如何自定义它或用我自己的替换它?


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)


SMILET
浏览 155回答 1
1回答

MMMHUHU

使用 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 时),因此它似乎可以满足您的要求。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go