1 回答
TA贡献1789条经验 获得超8个赞
您不必实现这些功能。 已经实现了 io。作者
:*http.Response
以 HTTP/1.x 服务器响应格式写入 r 到 w,包括状态行、标头、正文和可选的尾部。
package main
import (
"net/http"
"os"
)
func main() {
r := &http.Response{}
r.Write(os.Stdout)
}
在上面的示例中,零值打印:
HTTP/0.0 000 状态代码 0
内容长度: 0
游乐场: https://play.golang.org/p/2AUEAUPCA8j
如果在编写方法中需要其他业务逻辑,则可以嵌入到定义的类型中:*http.Response
type RespWrapper struct {
*http.Response
}
func (w *RespWrapper) toStdOut() {
_, err := io.Copy(os.Stdout, w.Body)
if err != nil {
panic(err)
}
}
但是,您必须使用 构造一个类型的变量:RespWrapper*http.Response
func main() {
// resp with a fake body
r := &http.Response{Body: io.NopCloser(strings.NewReader("foo"))}
// or r, _ := http.Get("example.com")
// construct the wrapper
wrapper := &RespWrapper{Response: r}
wrapper.toStdOut()
}
有没有办法使网址。获取方法吐出自定义类型
不可以,返回类型是 ,这是函数签名的一部分,您无法更改它。http.Get
(resp *http.Response, err error)
- 1 回答
- 0 关注
- 54 浏览
添加回答
举报