Portability | portable |
---|---|
Stability | Stable |
Maintainer | Michael Snoyman <[email protected]> |
Safe Haskell | Safe-Infered |
Web.Encodings
Contents
Description
Various web encodings.
- encodeUrl :: StringLike a => a -> a
- decodeUrl :: StringLike s => s -> s
- decodeUrlFailure :: (Failure DecodeUrlException m, StringLike s, Monad m) => s -> m s
- data DecodeUrlException
- encodeHtml :: StringLike s => s -> s
- decodeHtml :: StringLike s => s -> s
- encodeJson :: StringLike s => s -> s
- decodeJson :: StringLike s => s -> s
- encodeUrlPairs :: StringLike s => [(s, s)] -> s
- decodeUrlPairs :: StringLike s => s -> [(s, s)]
- decodeUrlPairsFailure :: (StringLike s, Failure DecodeUrlException m, Monad m) => s -> m [(s, s)]
- data FileInfo s c = FileInfo {
- fileName :: s
- fileContentType :: s
- fileContent :: c
- parseMultipart :: StringLike s => String -> s -> ([(s, s)], [(s, FileInfo s s)])
- parsePost :: StringLike s => String -> String -> s -> ([(s, s)], [(s, FileInfo s s)])
- decodeCookies :: StringLike s => s -> [(s, s)]
- parseCookies :: StringLike s => s -> [(s, s)]
- parseHttpAccept :: StringLike s => s -> [s]
- formatW3 :: UTCTime -> String
- data Sink x y = Sink {
- sinkInit :: IO x
- sinkAppend :: x -> ByteString -> IO x
- sinkClose :: x -> IO y
- sinkFinalize :: y -> IO ()
- lbsSink :: Sink ([ByteString] -> [ByteString]) ByteString
- tempFileSink :: Sink (FilePath, Handle) FilePath
Simple encodings.
URL (percentage encoding)
encodeUrl :: StringLike a => a -> aSource
Encode all but unreserved characters with percentage encoding.
This function implicitly converts the given value to a UTF-8 bytestream.
decodeUrl :: StringLike s => s -> sSource
Decode percentage encoding. Assumes use of UTF-8 character encoding.
If there are any parse errors, this returns the original input. If you would
like to be alerted more directly of errors, use decodeUrlFailure
.
decodeUrlFailure :: (Failure DecodeUrlException m, StringLike s, Monad m) => s -> m sSource
data DecodeUrlException Source
Constructors
InvalidPercentEncoding | |
InvalidUtf8Encoding |
HTML (entity encoding)
encodeHtml :: StringLike s => s -> sSource
Escape special HTML characters.
decodeHtml :: StringLike s => s -> sSource
Decode HTML-encoded content into plain content.
Note: this does not support all HTML entities available. It also swallows all failures.
JSON
encodeJson :: StringLike s => s -> sSource
Perform JSON-encoding on a string. Does not wrap in quotation marks. Taken from json package by Sigbjorn Finne.
decodeJson :: StringLike s => s -> sSource
HTTP level encoding.
Query string- pairs of percentage encoding
encodeUrlPairs :: StringLike s => [(s, s)] -> sSource
Convert a list of key-values pairs into a query string. Does not include the question mark at the beginning.
decodeUrlPairs :: StringLike s => s -> [(s, s)]Source
Convert into key-value pairs. Strips the leading ? if necesary.
decodeUrlPairsFailure :: (StringLike s, Failure DecodeUrlException m, Monad m) => s -> m [(s, s)]Source
Convert into key-value pairs. Strips the leading ? if necesary. failure
s
as necesary for invalid encodings.
Post parameters
Information on an uploaded file.
Constructors
FileInfo | |
Fields
|
Arguments
:: StringLike s | |
=> String | boundary |
-> s | content |
-> ([(s, s)], [(s, FileInfo s s)]) |
Parse a multipart form into parameters and files.
Arguments
:: StringLike s | |
=> String | content type |
-> String | content length |
-> s | body of the post |
-> ([(s, s)], [(s, FileInfo s s)]) |
Parse a post request. This function determines the correct decoding function to use.
Specific HTTP headers
decodeCookies :: StringLike s => s -> [(s, s)]Source
Deprecate alias for parseCookies
.
parseCookies :: StringLike s => s -> [(s, s)]Source
Decode the value of an HTTP_COOKIE header into key/value pairs.
parseHttpAccept :: StringLike s => s -> [s]Source
Parse the HTTP accept string to determine supported content types.
Date/time encoding
WAI-specific decodings
A destination for data, the opposite of a Source
.
Constructors
Sink | |
Fields
|
lbsSink :: Sink ([ByteString] -> [ByteString]) ByteStringSource