首页 > 解决方案 > 当我尝试将响应正文打印为字符串时,golang 奇怪的哔声

问题描述

我正在尝试在我的 grpc 服务中打印响应正文。

body, err := ioutil.ReadAll(response.Body)
fmt.Println(string(body))

一旦程序到达这条线,我的笔记本电脑就会开始疯狂地发出哔哔声。停止会话或终止进程没有帮助。这需要我重新启动我的机器。

假设我不进行字符串转换,那么代码就可以正常工作,它会打印出字节数组并且不会产生任何噪音。

body, err := ioutil.ReadAll(response.Body)
fmt.Println(body)

grpc 服务所做的只是发出一个 http Get 请求来下载文件并计算其校验和。当我尝试下载文件时发生此问题。

我在添加这个问题时很清楚这很有可能被否决,但我需要了解为什么会发生这种情况。这个问题听起来也非常奇怪和令人难以置信,但其他人也发生过吗?

标签: terminal

解决方案


如果出现错误如何打印,并通过跳过不可打印的字符来打印响应正文?

body, err := ioutil.ReadAll(response.Body)

if err != nil {
    fmt.Printf("error: %s\n", err)
} else {
    fmt.Printf("%q\n", body)
}

推荐阅读