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