2 回答

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超7個贊
您的函數(shù)是一個處理程序Func
,其中包含接口,在您的情況下它是 。ResponseWriter
w
因此,您可以使用 :http.ResponseWriter
func Fetch(w http.ResponseWriter, r *http.Request) {
client := &http.Client{}
req, err := http.NewRequest("GET", "https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest", nil)
if err != nil {
log.Print(err)
os.Exit(1)
}
resp, err := client.Do(req)
if err != nil {
fmt.Println("Error sending request to server")
os.Exit(1)
}
respBody, _ := ioutil.ReadAll(resp.Body)
// Here:
w.WriteHeader(resp.StatusCode)
w.Write(respBody)
}
你可以使用使用代替,記得關(guān)閉身體使用。io.Copy(w, resp.Body)defer resp.Body.Close()

TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個贊
您只需將響應(yīng)正文的內(nèi)容復(fù)制到響應(yīng)編寫器:
io.Copy(w,resp.Body)
由于您只能讀取一次身體,因此上面的解決方案將不允許您獲得身體。如果您還想記錄它,或者以某種方式處理它,則可以讀取它,然后將其寫入響應(yīng)編寫器。
respBody, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(respBody))
w.Write(respBody)
- 2 回答
- 0 關(guān)注
- 113 瀏覽
添加回答
舉報(bào)