如何在Go中正确使用http.ReadResponse?

问题描述 投票:0回答:1

我正在尝试将请求发送到服务器并使用http.ReadResponse函数接收响应,但问题是该请求被阻止并且什么也没收到。

首先,我以为我使用了不正确的请求,所以现在我将nil作为第二个论据来发送默认的GET请求(如文档中所述,但未进行任何更改。

也许我使用bufio.Reader的方式不正确,但我真的不这样认为,因为http.ReadRequest可以正常工作。

func main() {
    var conn, _ = net.Dial("tcp", "localhost:80")
    defer conn.Close()

    var (
        reader        = bufio.NewReader(conn)
        response, err = http.ReadResponse(reader, nil)
    )
    if err == nil {
        fmt.Println(*response)
    }
}
http go
1个回答
0
投票

因此,当您执行http.ReadResponse时,会在GoLang中获得Response对象。 response.Body的类型为io.ReadCloser。可以使用ioutil.ReadAll()将其读入字节数组。

因此,您可以执行byteArr,err := ioutil.ReadAll(response.Body)。根据您的响应,您可以将其放入Go的JSON处理程序中或将其转换为字符串。

另外,一个快速提示,对于[Get Requests],http库具有http.Get,因此您可以避免所有套接字内容。

© www.soinside.com 2019 - 2024. All rights reserved.