我想解析 Web 请求的响应,但无法将其作为字符串访问。
func main() {
resp, err := http.Get("http://google.hu/")
if err != nil {
// handle error
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
ioutil.WriteFile("dump", body, 0600)
for i:= 0; i < len(body); i++ {
fmt.Println( body[i] ) // This logs uint8 and prints numbers
}
fmt.Println( reflect.TypeOf(body) )
fmt.Println("done")
}
如何以字符串形式访问响应? ioutil.WriteFile
将响应正确写入文件。
我已经检查了包参考,但它并不是很有帮助。
原文由 Tibor Szasz 发布,翻译遵循 CC BY-SA 4.0 许可协议
bs := string(body)
应该足以给你一个字符串。从那里,您可以将其用作常规字符串。
有点像 这个线程
(在 Go 1.16 之后更新 – 2021 年第一季度 –
ioutil
弃用:ioutil.ReadAll()
=>io.ReadAll()
):另请参阅 GoByExample 。
正如下面的评论(以及 zzn 的 回答),这是一个 转换(参见 规范)。
请参阅“ How expensive is
[]byte(string)
? ”(反向问题,但同样的结论适用) zzzz 提到的地方:索尼娅 补充道: