I'm trying to write a Go HTTP client intended to stream event data from a HTTP server. My problem is that the first byte of the response could take hours before I get it, this includes the response headers. It's even possible I never get a response.
I currently get net/http: request canceled (Client.Timeout exceeded while awaiting headers)
using this client:
Client = &http.Client{
Transport: &http.Transport{
Dial: (&net.Dialer{
Timeout: 0,
KeepAlive: 30 * time.Second,
}).Dial,
Proxy: http.ProxyURL(proxyUrl),
ResponseHeaderTimeout: 0,
},
Timeout: 0,
}
I cannot think of any more timeouts to set to zero in order for my connection to not timeout. What am I missing?
I'm using go version go1.8 linux/amd64
.
Edit 1: I have no possibility to change the server for which i'm writing a client.