The most low-level function for initiating an HTTP request.
The first argument to this function gives a full specification
on the request: the host to connect to, whether to use SSL,
headers, etc. Please see Request for full details. The
second argument specifies which Manager should be used.
This function then returns a Response with a
BodyReader. The Response contains the status code
and headers that were sent back to us, and the
BodyReader contains the body of the request. Note
that this BodyReader allows you to have fully
interleaved IO actions during your HTTP download, making it
possible to download very large responses in constant memory.
An important note: the response body returned by this function represents a
live HTTP connection. As such, if you do not use the response body, an open
socket will be retained indefinitely. You must be certain to call
responseClose on this response to free up resources.
This function automatically performs any necessary redirects, as specified
by the redirectCount setting.
When implementing a (reverse) proxy using this function or relating
functions, it's wise to remove Transfer-Encoding:, Content-Length:,
Content-Encoding: and Accept-Encoding: from request and response
headers to be relayed.
Since 0.1.0