从大猩猩工具包中读取响应内容 Client.get
Read response content from gorilla toolkit Client.get
我正在使用 Gorilla Toolkit 的 golang 来请求网络资源 (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
类型,我不知道如何访问它。感谢任何帮助。
使用ioutil.ReadAll将整个响应主体读取为[]byte:
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 客户端得到更好维护的示例。
我正在使用 Gorilla Toolkit 的 golang 来请求网络资源 (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
类型,我不知道如何访问它。感谢任何帮助。
使用ioutil.ReadAll将整个响应主体读取为[]byte:
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 客户端得到更好维护的示例。