golang中怎么打印为好查看一点的格式?

import (
    "fmt"
    "net/http"
)

func main() {

    resp, err := http.Get("https://baidu.com")

    if err != nil {
        fmt.Println("error = ", err)
    }

    fmt.Println(resp)

}

打印结果:

&{200 OK 200 HTTP/1.1 1 1 map[Bdpagetype:[1] Bdqid:[0xd9657d540002faf9] Cache-Control:[private] Connection:[keep-alive] Content-Type:[text/html;charset=utf-8] Date:[Tue, 29 Mar 2022 03:56:27 GMT] Expires:[Tue, 29 Mar 2022 03:56:05 GMT] P3p:[CP=" OTI DSP COR IVA OUR IND COM " CP=" OTI DSP COR IVA OUR IND COM "] Server:[BWS/1.1] Set-Cookie:[BAIDUID=7B34A4A996C1316EB90D26BC6B1C3569:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com BIDUPSID=7B34A4A996C1316EB90D26BC6B1C3569; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com PSTM=1648526187; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com BAIDUID=7B34A4A996C1316EA7A136575AE70629:FG=1; max-age=31536000; expires=Wed, 29-Mar-23 03:56:27 GMT; domain=.baidu.com; path=/; version=1; comment=bd BDSVRTM=0; path=/ BD_HOME=1; path=/ H_PS_PSSID=36072_36178_31660_36166_34584_36140_36120_36034_36126_35993_35316_26350_35724_36103_36061; path=/; domain=.baidu.com] Traceid:[1648526187025404673015665064678609058553] X-Frame-Options:[sameorigin] X-Ua-Compatible:[IE=Edge,chrome=1]] 0xc00004d120 -1 [chunked] false true map[] 0xc00019e000 <nil>}

请问下,有没有格式化打印的方式呢?
我想打印为好查看一点的格式:
image.png

阅读 2.5k
3 个回答

给您写一个demo 具体的内容您可以自行添加或更改
这里转成json格式了

func main() {

    type Response struct {
        ContentType string
        Date        string
        Status      string
    }
    resp, err := http.Get("https://baidu.com")

    if err != nil {
        fmt.Println("error = ", err)
    }
    // 1.写值
    response := &Response{
        ContentType: resp.Header.Get("Content-Type"),
        Date:        resp.Header.Get("Date"),
        Status:      resp.Status,
    }
    // 2.Json格式化
    result, err := json.Marshal(&response)
    fmt.Println(string(result))
}

image.png

fmt.Println(resp) 改为 fmt.Printf("%+v\n", resp)
  • fmt.Println(o) 会调用o.String()方法(如果有)进行打印。所以你可以定制String方法,来到达你想要的格式。
  • 可以使用JSON的格式打印,json.Marshal(o)可以转换为json格式
  • 使用一些库进行打印,比如
    https://github.com/kr/pretty
    https://github.com/gookit/gou...
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题