http - 使用 ioutil : returning array of (ASCII? ) 来自 http 调用的数字进行输出

标签 http go

我正在尝试用 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返回的测试

最佳答案

ioutil.ReadAll()返回字节 slice ([]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

关于http - 使用 ioutil : returning array of (ASCII? ) 来自 http 调用的数字进行输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28343085/

相关文章:

java - 使用 apache httpclient 4 显示请求 header 时出现问题

javascript - 如何在 AngularJs $http.get 参数中包含 "="?

json - SpringMVC 400 错误请求 JSON 数据

go - 使用 Go 确定进程/程序是否已终止

xml - 使用 Go 并行读取多个 URL

recursion - 在go中使用递归获取深度嵌套结构

android - 通过 HTTP 表单上传文件,通过 MultipartEntityBuilder,带有进度条

http - 对 favicon.ico 的 http 请求的最小正确答案是什么

go - 二进制补码和 fmt.Printf

go - 位掩码 int64 中的多个值