Copyright | Will Thompson, Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria (garetxe@gmail.com) |
Safe Haskell | None |
Language | Haskell2010 |
Represents a multipart HTTP message body, parsed according to the syntax of RFC 2046. Of particular interest to HTTP are <literal>multipart/byte-ranges</literal> and <literal>multipart/form-data</literal>.
Although the headers of a Multipart
body part will contain the
full headers from that body part, libsoup does not interpret them
according to MIME rules. For example, each body part is assumed to
have "binary" Content-Transfer-Encoding, even if its headers
explicitly state otherwise. In other words, don't try to use
Multipart
for handling real MIME multiparts.
- newtype Multipart = Multipart (ManagedPtr Multipart)
- noMultipart :: Maybe Multipart
- data MultipartAppendFormFileMethodInfo
- multipartAppendFormFile :: (HasCallStack, MonadIO m) => Multipart -> Text -> Text -> Text -> Buffer -> m ()
- data MultipartAppendFormStringMethodInfo
- multipartAppendFormString :: (HasCallStack, MonadIO m) => Multipart -> Text -> Text -> m ()
- data MultipartAppendPartMethodInfo
- multipartAppendPart :: (HasCallStack, MonadIO m) => Multipart -> MessageHeaders -> Buffer -> m ()
- data MultipartFreeMethodInfo
- multipartFree :: (HasCallStack, MonadIO m) => Multipart -> m ()
- data MultipartGetLengthMethodInfo
- multipartGetLength :: (HasCallStack, MonadIO m) => Multipart -> m Int32
- data MultipartGetPartMethodInfo
- multipartGetPart :: (HasCallStack, MonadIO m) => Multipart -> Int32 -> m (Bool, MessageHeaders, Buffer)
- multipartNew :: (HasCallStack, MonadIO m) => Text -> m Multipart
- multipartNewFromMessage :: (HasCallStack, MonadIO m) => MessageHeaders -> MessageBody -> m (Maybe Multipart)
- data MultipartToMessageMethodInfo
- multipartToMessage :: (HasCallStack, MonadIO m) => Multipart -> MessageHeaders -> MessageBody -> m ()
Exported types
Methods
appendFormFile
multipartAppendFormFile Source #
:: (HasCallStack, MonadIO m) | |
=> Multipart |
|
-> Text |
|
-> Text |
|
-> Text |
|
-> Buffer |
|
-> m () |
Adds a new MIME part containing body
to multipart
, using
"Content-Disposition: form-data", as per the HTML forms
specification. See formRequestNewFromMultipart
for more
details.
Since: 2.26
appendFormString
data MultipartAppendFormStringMethodInfo Source #
((~) * signature (Text -> Text -> m ()), MonadIO m) => MethodInfo * MultipartAppendFormStringMethodInfo Multipart signature Source # | |
multipartAppendFormString Source #
:: (HasCallStack, MonadIO m) | |
=> Multipart |
|
-> Text |
|
-> Text |
|
-> m () |
Adds a new MIME part containing data
to multipart
, using
"Content-Disposition: form-data", as per the HTML forms
specification. See formRequestNewFromMultipart
for more
details.
Since: 2.26
appendPart
data MultipartAppendPartMethodInfo Source #
((~) * signature (MessageHeaders -> Buffer -> m ()), MonadIO m) => MethodInfo * MultipartAppendPartMethodInfo Multipart signature Source # | |
:: (HasCallStack, MonadIO m) | |
=> Multipart |
|
-> MessageHeaders |
|
-> Buffer |
|
-> m () |
Adds a new MIME part to multipart
with the given headers and body.
(The multipart will make its own copies of headers
and body
, so
you should free your copies if you are not using them for anything
else.)
Since: 2.26
free
data MultipartFreeMethodInfo Source #
((~) * signature (m ()), MonadIO m) => MethodInfo * MultipartFreeMethodInfo Multipart signature Source # | |
:: (HasCallStack, MonadIO m) | |
=> Multipart |
|
-> m () |
Frees multipart
Since: 2.26
getLength
data MultipartGetLengthMethodInfo Source #
((~) * signature (m Int32), MonadIO m) => MethodInfo * MultipartGetLengthMethodInfo Multipart signature Source # | |
:: (HasCallStack, MonadIO m) | |
=> Multipart |
|
-> m Int32 | Returns: the number of body parts in |
Gets the number of body parts in multipart
Since: 2.26
getPart
data MultipartGetPartMethodInfo Source #
((~) * signature (Int32 -> m (Bool, MessageHeaders, Buffer)), MonadIO m) => MethodInfo * MultipartGetPartMethodInfo Multipart signature Source # | |
:: (HasCallStack, MonadIO m) | |
=> Multipart |
|
-> Int32 |
|
-> m (Bool, MessageHeaders, Buffer) | Returns: |
Gets the indicated body part from multipart
.
Since: 2.26
new
:: (HasCallStack, MonadIO m) | |
=> Text |
|
-> m Multipart | Returns: a new empty |
Creates a new empty Multipart
with a randomly-generated
boundary string. Note that mimeType
must be the full MIME type,
including "multipart/".
Since: 2.26
newFromMessage
multipartNewFromMessage Source #
:: (HasCallStack, MonadIO m) | |
=> MessageHeaders |
|
-> MessageBody |
|
-> m (Maybe Multipart) | Returns: a new |
Parses headers
and body
to form a new Multipart
Since: 2.26
toMessage
data MultipartToMessageMethodInfo Source #
((~) * signature (MessageHeaders -> MessageBody -> m ()), MonadIO m) => MethodInfo * MultipartToMessageMethodInfo Multipart signature Source # | |
:: (HasCallStack, MonadIO m) | |
=> Multipart |
|
-> MessageHeaders |
|
-> MessageBody |
|
-> m () |
Serializes multipart
to destHeaders
and destBody
.
Since: 2.26