| Copyright | (c) Peter Thiemann 20012002 (c) Bjorn Bringert 2005-2006 |
|---|---|
| License | BSD-style |
| Maintainer | Anders Kaseorg <andersk@mit.edu> |
| Stability | experimental |
| Portability | non-portable |
| Safe Haskell | None |
| Language | Haskell2010 |
Network.Multipart
Contents
Description
Parsing of the multipart format from RFC2046. Partly based on code from WASHMail.
Synopsis
- data MultiPart = MultiPart [BodyPart]
- data BodyPart = BodyPart Headers ByteString
- parseMultipartBody :: String -> ByteString -> MultiPart
- hGetMultipartBody :: String -> Handle -> IO MultiPart
- showMultipartBody :: String -> MultiPart -> ByteString
- type Headers = [(HeaderName, String)]
- newtype HeaderName = HeaderName String
- data ContentType = ContentType {
- ctType :: String
- ctSubtype :: String
- ctParameters :: [(String, String)]
- data ContentTransferEncoding = ContentTransferEncoding String
- data ContentDisposition = ContentDisposition String [(String, String)]
- parseContentType :: MonadFail m => String -> m ContentType
- getContentType :: MonadFail m => Headers -> m ContentType
- getContentTransferEncoding :: MonadFail m => Headers -> m ContentTransferEncoding
- getContentDisposition :: MonadFail m => Headers -> m ContentDisposition
Multi-part messages
Arguments
| :: String | Boundary |
| -> ByteString | |
| -> MultiPart |
Read a multi-part message from a ByteString.
Arguments
| :: String | Boundary |
| -> Handle | |
| -> IO MultiPart |
Read a multi-part message from a Handle.
Fails on parse errors.
showMultipartBody :: String -> MultiPart -> ByteString Source #
Headers
type Headers = [(HeaderName, String)] Source #
HTTP headers.
newtype HeaderName Source #
A string with case insensitive equality and comparisons.
Constructors
| HeaderName String |
Instances
| Eq HeaderName Source # | |
Defined in Network.Multipart.Header | |
| Ord HeaderName Source # | |
Defined in Network.Multipart.Header Methods compare :: HeaderName -> HeaderName -> Ordering (<) :: HeaderName -> HeaderName -> Bool (<=) :: HeaderName -> HeaderName -> Bool (>) :: HeaderName -> HeaderName -> Bool (>=) :: HeaderName -> HeaderName -> Bool max :: HeaderName -> HeaderName -> HeaderName min :: HeaderName -> HeaderName -> HeaderName | |
| Show HeaderName Source # | |
Defined in Network.Multipart.Header Methods showsPrec :: Int -> HeaderName -> ShowS show :: HeaderName -> String showList :: [HeaderName] -> ShowS | |
data ContentType Source #
A MIME media type value.
The Show instance is derived automatically.
Use showContentType to obtain the standard
string representation.
See http://www.ietf.org/rfc/rfc2046.txt for more
information about MIME media types.
Constructors
| ContentType | |
Fields
| |
Instances
| Eq ContentType Source # | |
Defined in Network.Multipart.Header | |
| Ord ContentType Source # | |
Defined in Network.Multipart.Header Methods compare :: ContentType -> ContentType -> Ordering (<) :: ContentType -> ContentType -> Bool (<=) :: ContentType -> ContentType -> Bool (>) :: ContentType -> ContentType -> Bool (>=) :: ContentType -> ContentType -> Bool max :: ContentType -> ContentType -> ContentType min :: ContentType -> ContentType -> ContentType | |
| Read ContentType Source # | |
Defined in Network.Multipart.Header Methods readsPrec :: Int -> ReadS ContentType readList :: ReadS [ContentType] readPrec :: ReadPrec ContentType readListPrec :: ReadPrec [ContentType] | |
| Show ContentType Source # | |
Defined in Network.Multipart.Header Methods showsPrec :: Int -> ContentType -> ShowS show :: ContentType -> String showList :: [ContentType] -> ShowS | |
| HeaderValue ContentType Source # | |
Defined in Network.Multipart.Header Methods parseHeaderValue :: Parser ContentType Source # prettyHeaderValue :: ContentType -> String Source # | |
data ContentTransferEncoding Source #
Constructors
| ContentTransferEncoding String |
Instances
data ContentDisposition Source #
Constructors
| ContentDisposition String [(String, String)] |
Instances
parseContentType :: MonadFail m => String -> m ContentType Source #
Parse the standard representation of a content-type.
If the input cannot be parsed, this function calls
fail with a (hopefully) informative error message.
getContentType :: MonadFail m => Headers -> m ContentType Source #
getContentTransferEncoding :: MonadFail m => Headers -> m ContentTransferEncoding Source #
getContentDisposition :: MonadFail m => Headers -> m ContentDisposition Source #