首页 > 解决方案 > Golang访问http连接的CLIENT套接字

问题描述

我有一个 HTTP 客户端通常向端点执行请求并等待响应。

但是,我想使用底层套接字读取响应,而不是“Do”请求返回的响应。

我试图创建一个httpClient并传递一个预连接的套接字,但它不起作用,因为我无法读取该套接字上的任何内容。

如何访问/设置底层套接字并从那里读取数据?(我还注意到 Dial 已被弃用)

//Create socket and HTTP client
socket, socketErr := net.Dial("tcp", ipAddress+":"+fmt.Sprint(port))
httpClient := &http.Client{
        Transport: &http.Transport{
            Dial: func(network, addr string) (net.Conn, error) {
                return socket, socketErr
            },
        },
    }
//Perform the request
res, reqErr:= httpClient.Do(request) //GET, POST, etc.
//Read response bytes from socket
for {
    bytesR, _ := bufferIO.ReadByte()
    fmt.Print(string(bytesR))
}

标签: socketshttpgo

解决方案


推荐阅读