向GET请求添加HTTP标头



我正在Golang中创建一个反向代理,在试图获取有关如何将HTTP头添加到API调用的在线示例时遇到了困难。

这是我的API调用:

package handlers
import (
"fmt"
"io/ioutil"
"log"
"net/http"
)

func (s *Server) getApiCall(w http.ResponseWriter, r *http.Request) {
resp, err := http.Get("https://url.com")
if err != nil {
log.Fatalln(err)
}
//We Read the response body on the line below.
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatalln(err)
}
//Convert the body to type string
sb := string(body)
log.Printf(sb)
fmt.Fprintf(w, sb)
}

在我的函数中,哪里可以添加一个以Bearer <TOKEN>为值的Authorization标头?

我是Go的新手,据我所知,这应该是足够的代码,但如果你需要更多关于我后端的细节,只需在需要澄清的地方添加一条评论。

您不能使用http.Get,而是使用http.NewRequest创建一个请求对象,然后向其添加标头。

一个例子:

client := &http.Client{}
req, err := http.NewRequest("GET", "https://url.com", nil)
if err != nil {
// handle error
}
req.Header.Add("Authorization", "Bearer ...")
resp, err := client.Do(req)
if err != nil {
// handle error
}

有关更多详细信息,请参阅http package文档。

最新更新