sockets - 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))
}
解决方案
推荐阅读
- java - 为什么 List.contains(Object) 的行为不同?
- r - 如何在同一个数据帧上做colsum和average
- powerbi - 使用 DAX 生成日期系列
- javascript - 仅在服务器上需要一个包
- java - Intellij IDEA 仅针对所有未提交的更改运行测试
- regex - 在换行符之前匹配字符,不包括空格?
- macos - MacOS - 使用带有launchd的脚本 - 启动,登录,注销,关闭?
- service-worker - Workbox 的服务人员在更改时未更新
- python - AllenNLP 共指分辨率的多 GPU 训练
- reactjs - 事件处理程序中带有 [name] 的 PrevState