on master help sign in
lazyRequestBody
commit050109e7bbb52b9e4ec5404100349d4adb28739a authorMichael Snoyman <michael@snoyman.com> dateThu 14 Nov 2013, 05:37 (13 years ago) parent5ba7617
2 files changed+10−1
wai/Network/Wai.hs+9 wai/wai.cabal+1−1
wai/Network/Wai.hs+9
@@ -45,6 +45,7 @@ module Network.Wai
4545 , Middleware
4646 , FilePart (..)
4747 , RequestBodyLength (..)
48+ , lazyRequestBody
4849 -- * Response body smart constructors
4950 , responseLBS
5051 , responseStatus
@@ -55,6 +56,7 @@ import qualified Data.ByteString.Lazy as L
5556import Data.Typeable (Typeable)
5657import qualified Data.Conduit as C
5758import qualified Data.Conduit.List as CL
59+import Data.Conduit.Lazy (lazyConsume)
5860import qualified Data.Conduit.Binary as CB
5961import Blaze.ByteString.Builder (Builder, fromLazyByteString)
6062import Network.Socket (SockAddr)
@@ -197,3 +199,10 @@ type Middleware = Application -> Application
197199--
198200-- Since 1.4.0
199201data RequestBodyLength = ChunkedBody | KnownLength Word64
202+
203+-- | Get the request body as a lazy ByteString. This uses lazy I\/O under the
204+-- surface, and therefore all typical warnings regarding lazy I/O apply.
205+--
206+-- Since 1.4.1
207+lazyRequestBody :: Request -> C.ResourceT IO L.ByteString
208+lazyRequestBody = fmap L.fromChunks . lazyConsume . requestBody
wai/wai.cabal+1−1
@@ -1,5 +1,5 @@
11Name: wai
2−Version: 1.4.0.2
2+Version: 1.4.1
33Synopsis: Web Application Interface.
44Description: Provides a common protocol for communication between web applications and web servers.
55License: MIT