首頁 >後端開發 >Golang >如何在 Go 中以字串形式存取 HTTP 回應正文?

如何在 Go 中以字串形式存取 HTTP 回應正文?

DDD
DDD原創
2024-12-08 07:24:16371瀏覽

How Do I Access an HTTP Response Body as a String in Go?

在Go 中以字串形式存取HTTP 回應

解析Web 請求的回應時,以字串形式存取它可能會出現問題。考慮以下程式碼:

resp, err := http.Get("http://google.hu/")
if err != nil {
    // handle error
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)

當程式碼成功取得回應正文時,請嘗試使用 for i:= 0; 將其作為字串進行迭代。我

以字串形式存取回應的關鍵在於一個簡單的轉換:

bs := string(body)

這個轉換將位元組切片主體視為 Unicode 碼點序列並建立對應的字串。轉換後,您可以像操作任何其他字串一樣操作 bs。

例如,以下程式碼示範了轉換和後續的字串操作:

var client http.Client
resp, err := client.Get(url)
if err != nil {
    log.Fatal(err)
}
defer resp.Body.Close()

if resp.StatusCode == http.StatusOK {
    bodyBytes, err := io.ReadAll(resp.Body)
    if err != nil {
        log.Fatal(err)
    }
    bodyString := string(bodyBytes)
    fmt.Println(bodyString)
}

此轉換突出了位元組和字串之間的區別在圍棋中。字串是 Unicode 碼點的不可變序列,而位元組切片是原始位元組的可變序列。從位元組切片到字串的轉換有效地創建了一個新字串,該字串表示由位元組編碼的字元序列。

以上是如何在 Go 中以字串形式存取 HTTP 回應正文?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn