第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從轉(zhuǎn)到 HTTP 請求將數(shù)據(jù)返回到客戶端

從轉(zhuǎn)到 HTTP 請求將數(shù)據(jù)返回到客戶端

Go
烙印99 2022-09-26 14:51:46
我編寫了一個簡單的 Fetch Go 函數(shù),它調(diào)用一個 API,并生成一個響應(yīng)。調(diào)用時,它會成功將數(shù)據(jù)記錄到從 API 中提取的控制臺。我想做的是獲取讀取響應(yīng)正文后生成的最終“respBody”變量,然后將其返回給我的前端客戶端 - 但我不知道如何。所有示例都只使用Println,我已經(jīng)搜索了文檔,但找不到任何內(nèi)容。任何人都可以告訴我如何更改我的代碼,以便我可以將respBody返回給客戶端?這是我的函數(shù):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)    fmt.Println(string(respBody)) // This is the final bit where I want to send this back to the client.}
查看完整描述

2 回答

?
aluckdog

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超7個贊

您的函數(shù)是一個處理程序Func,其中包含接口,在您的情況下它是 。ResponseWriterw

因此,您可以使用 :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()




查看完整回答
反對 回復(fù) 2022-09-26
?
慕少森

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)


查看完整回答
反對 回復(fù) 2022-09-26
  • 2 回答
  • 0 關(guān)注
  • 113 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號