snoyberg / http-enumerator

HTTP client package with enumerator interface and HTTPS support.
27 stars 9 forks source link

Support streaming request bodies #3

Closed aristidb closed 13 years ago

aristidb commented 13 years ago

Currently, Request only supports lazy ByteStrings as request bodies. It would be nice to be able to stream request bodies from (large) files or other sources (with iteratee/enumerator or such).

In the general case, the user would have to additionally supply a content length manually, which would not be checked against the stream. Quote from RFC 2616:

"For compatibility with HTTP/1.0 applications, HTTP/1.1 requests containing a message-body MUST include a valid Content-Length header field unless the server is known to be HTTP/1.1 compliant."

However, in some cases the user might KNOW that this particular HTTP server supports Transfer-Encodings, in which case it might be appropriate to use chunking.