url-2.1.3: A library for working with URLs.

Copyright(c) Galois, Inc. 2007, 2008
LicenseBSD3
MaintainerIavor S. Diatchki
StabilityProvisional
PortabilityPortable
Safe HaskellSafe
LanguageHaskell98

Network.URL

Description

Provides a convenient way for working with HTTP URLs. Based on RFC 1738. See also: RFC 3986

Synopsis

Documentation

data URL

A type for working with URL. The parameters are in application/x-www-form-urlencoded format: http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4.1

Constructors

URL 

Instances

data URLType

Different types of URL.

Constructors

Absolute Host

Has a host

HostRelative

Does not have a host

PathRelative

Relative to another URL

data Host

Contains information about the connection to the host.

Constructors

Host 

Instances

data Protocol

The type of known protocols.

Constructors

HTTP Bool 
FTP Bool 
RawProt String 

secure :: Host -> Bool

Does this host use a "secure" protocol (e.g., https).

secure_prot :: Protocol -> Bool

Is this a "secure" protocol. This works only for known protocols, for RawProt values we return False.

exportURL :: URL -> String

Convert a URL to a list of "bytes". We represent non-ASCII characters using UTF8.

importURL :: String -> Maybe URL

Convert a list of "bytes" to a URL.

exportHost :: Host -> String

Convert the host part of a URL to a list of "bytes".

add_param :: URL -> (String, String) -> URL

Add a (key,value) parameter to a URL.

decString :: Bool -> String -> Maybe String

Decode a list of "bytes" to a string. Performs % and UTF8 decoding.

encString :: Bool -> (Char -> Bool) -> String -> String

Convert a string to bytes by escaping the characters that do not satisfy the input predicate. The first argument specifies if we should replace spaces with +.

ok_url :: Char -> Bool

Characters that do not need to be encoded in URL

ok_path :: Char -> Bool

Characters that can appear non % encoded in the path part of the URL