使用 ioutil 进行输出:从 http 调用返回(ASCII?)数字数组

我正在尝试用 Go 编写一个 Web 客户端,但是当我检查 http 请求正文的返回值时,我得到一个数字数组,而不是文本。


这是产生输出的程序中最孤立的版本。我想我没有用 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 ...


而不是 test.com 返回的测试


小怪兽爱吃肉
浏览 143回答 1
1回答

一只斗牛犬

ioutil.ReadAll()返回一个字节切片 ( []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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go