Safe Haskell | None |
---|
Network.HTTP.Toolkit.Request
- type RequestPath = ByteString
- data Request a = Request {
- requestMethod :: Method
- requestPath :: RequestPath
- requestHeaders :: [Header]
- requestBody :: a
- readRequest :: Connection -> IO (Request BodyReader)
- readRequestWithLimit :: Limit -> Connection -> IO (Request BodyReader)
- parseRequestLine :: ByteString -> Maybe (Method, RequestPath)
- sendRequest :: (ByteString -> IO ()) -> Request BodyReader -> IO ()
- formatRequestLine :: Method -> RequestPath -> ByteString
- determineRequestBodyType :: [Header] -> BodyType
Documentation
type RequestPath = ByteStringSource
Constructors
Request | |
Fields
|
readRequest :: Connection -> IO (Request BodyReader)Source
Same as readRequestWithLimit
with a Limit
of defaultHeaderSizeLimit
.
readRequestWithLimit :: Limit -> Connection -> IO (Request BodyReader)Source
Read request from provided connection.
Throws:
-
InvalidRequestLine
if request-line is malformed. -
HeaderTooLarge
if request-line and headers together exceed the specified sizeLimit
-
InvalidHeader
if request-line is missing or a header is malformed
parseRequestLine :: ByteString -> Maybe (Method, RequestPath)Source
Parse request-line (see RFC 2616, Section 5.1).
sendRequest :: (ByteString -> IO ()) -> Request BodyReader -> IO ()Source
Send an HTTP request.
Note: The first argument to this function is used to send the data. For space efficiency it may be called multiple times.
formatRequestLine :: Method -> RequestPath -> ByteStringSource
Format request-line.
determineRequestBodyType :: [Header] -> BodyTypeSource
Determine the message BodyType
from a given list of message headers (as
of RFC 2616, Section 4.4).