【问题标题】:Read response content from gorilla toolkit Client.get从 gorilla 工具包 Client.get 读取响应内容
【发布时间】:2016-07-19 04:55:01
【问题描述】:

我正在使用Gorilla Toolkit for golang 来请求 Web 资源 (GET),我想处理响应正文但不知道如何访问它。这是我的 main.go

package main

import (
    "log"

    "github.com/gorilla/http"
)

func main() {
    url := "http://ubuntu.com"

    status, h, r, err := http.DefaultClient.Get(url, nil)
    if err != nil {
        log.Fatal(err)
    }
    if r != nil {
        defer r.Close()
    }
    log.Printf("Status: %v", status)
    log.Printf("Headers: %v", h)

    var p []byte
    _, err = r.Read(p)
    if err != nil {
        log.Fatal(err)
    }
    log.Printf("MSG: %v", p)
} 

Gorillas 响应对象是 io.ReadCloser 类型的,我不知道如何访问它。任何帮助表示赞赏。

【问题讨论】:

    标签: go gorilla


    【解决方案1】:

    使用ioutil.ReadAll 将整个响应正文读取为[]字节:

    status, h, r, err := http.DefaultClient.Get(url, nil)
    if err != nil {
        log.Fatal(err)
    }
    var p []byte
    if r != nil {
        p, err = ioutil.ReadAll(r)
        r.Close()
        if err != nil {
            log.Fatal(err)
        }
    }
    

    我建议您使用net/http client 而不是 Gorilla 客户端。还有更多的例子说明如何使用 net/http 客户端和更好地维护 net/http 客户端。

    【讨论】:

      猜你喜欢
      • 2013-03-27
      • 1970-01-01
      • 1970-01-01
      • 2012-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多