在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中文網其他相關文章!