使用 ioutil 进行输出:从 http 调用返回(ASCII?)数字数组
Go output with ioutil: returning array of (ASCII?) numbers from http call
我正在尝试用 Go 编写 Web 客户端,但是当我检查 http 请求正文的 return 值时,我得到了一个数字数组,而不是文本。
这是生成输出的程序的最孤立版本。我想我无法使用 ioutil 做某事,但不知道是什么。
package main
import "fmt"
import "net/http"
import "io/ioutil"
func main() {
resp, err := http.Get("http://test.com/")
if err != nil {
fmt.Println(err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
fmt.Print(body)
}
输出结果如下:
[239 187 191 60 33 68 79 67 84 89 80 69 32 104 116 109 108 ...
而不是return由test.com编辑的测试
ioutil.ReadAll()
returns 字节切片 ([]byte
) 而不是 string
(加上 error
)。
将其转换为 string
就可以了:
fmt.Print(string(body))
查看这个简单示例(在 Go Playground 上尝试):
var b []byte = []byte("Hello")
fmt.Println(b)
fmt.Println(string(b))
输出:
[72 101 108 108 111]
Hello
我正在尝试用 Go 编写 Web 客户端,但是当我检查 http 请求正文的 return 值时,我得到了一个数字数组,而不是文本。
这是生成输出的程序的最孤立版本。我想我无法使用 ioutil 做某事,但不知道是什么。
package main
import "fmt"
import "net/http"
import "io/ioutil"
func main() {
resp, err := http.Get("http://test.com/")
if err != nil {
fmt.Println(err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
fmt.Print(body)
}
输出结果如下:
[239 187 191 60 33 68 79 67 84 89 80 69 32 104 116 109 108 ...
而不是return由test.com编辑的测试
ioutil.ReadAll()
returns 字节切片 ([]byte
) 而不是 string
(加上 error
)。
将其转换为 string
就可以了:
fmt.Print(string(body))
查看这个简单示例(在 Go Playground 上尝试):
var b []byte = []byte("Hello")
fmt.Println(b)
fmt.Println(string(b))
输出:
[72 101 108 108 111]
Hello